Основы работы с маршрутизатором запросов Mojolicious и его основные принципы | Participants
|
- Statistics
- Participants
- Translate into Russian
- Translation result
- Translation complete.
If you do not want to register an account, you can sign in with OpenID.
Introduction to the Mojolicious router and its underlying concepts | Основы работы с маршрутизатором запросов Mojolicious и его основные принципы | |
# Copyright (C) 2008-2010, Sebastian Riedel. | ||
=encoding utf8 | ||
=head1 NAME | ||
Mojolicious::Guides::Routing - Routing | ||
=head1 OVERVIEW | ||
This document contains a simple and fun introduction to the L<Mojolicious> | Этот документ содержит простое и приятное руководство по работе с маршрутизатором L<Mojolicious> и основные его понятия. | |
=head1 CONCEPTS | ||
Essentials every L<Mojolicious> developer should know. | Основы, которые должен знать каждый L<Mojolicious> разработчик. | — L<Mojolicious> разработчик - если наоборот то относится разработчикам самого Moj — r3code |
=head2 Dispatcher | ||
The foundation of every web framework is a tiny black box connecting incoming | Основой каждого веб фреймворка является небольшой черный ящик, связывающий входящие запросы с кодом, генерующим соответствующий ответ. | |
GET /user/show/1 -> $self->render(text => 'Sebastian!'); | GET /user/show/1 -> $self->render(text => 'Себастьян!'); | |
This black box is usually called a dispatcher. | Этот черный ящик обычно называют диспетчером. Существует множество реализаций, использующих различные подходы для создания таких связей, но практически все, так или иначе, основаны на связывании путей запросов с каким-либо генератором ответа. | |
/user/show/1 -> $self->render(text => 'Sebastian!'); | /user/show/1 -> $self->render(text => 'Себастьян!'); | |
While it is very well possible to make all these connections static, it is | Конечно возможно сделать все эти связи статичными, но, безусловно, это не эффективно. По этому часто применяются регулярные выражения, чтобы сделать процесс маршрутизации более динамичным. | |
qr|/user/show/(\d+)| -> $self->render(text => $users{$1}); | qr|/user/show/(\d+)| -> $self->render(text => $users{$1}); | |
Modern dispatchers have pretty much everything HTTP has to offer at their | В современных диспетчерах есть доступ ко всему, что может предложить HTTP. Можно использовать не только путь запроса, но и, к примеру, метод запроса или заголовки C<Host>, C<User-Agent> и C<Accept>. | |
GET /user/show/23 HTTP/1.1 | GET /user/show/23 HTTP/1.1 | |
=head2 Routes | ||
While regular expressions are quite powerful they also tend to be unpleasant | Хотя регулярные выражения достаточно мощное средство, они не очень понятно выглядят и слишком избыточны для простого сопоставления пути. | |
qr|/user/show/(\d+)| -> $self->render(text => $users{$1}); | qr|/user/show/(\d+)| -> $self->render(text => $users{$1}); | |
This is where routes come into play, they have been designed from the ground | Это как раз тот случай, когда можно применить маршруты. Они были спроектированы специально для представления путей со специальными метками (placeholder'ами). |
© 2008-2010, Sebastian Riedel..

— простое и занимательно введение hell yeah!!! (: — Foxcool
— :) — vti
More 5 comments
— Как такой вариант? с "Приятным" — r3code
— Мне кажется, что приятное тут не к месту. — vti
Comment was deleted
— И правда: мы переводим не доклад для нач. штаба, а мануалы для сообщества програмистов, которы, которым слово router понятнее "маршрутизатора запросов". — Foxcool
— для меня как сетевика и то и то одинаково. Делайте предложения - обсуждаем — r3code
— на 8 странице есть абзац про условия, так если писать маршрут "применяется к роутеру" - то выглядит оч криво. — r3code