Роутер на PHP

bersenev-98

Новичок
Здравствуйте уважаемые форумчане) Собственно вот какие возникли вопросы:

1. Как должна выглядеть полноценная маршрутизация на сайте? Что обязательно должно в ней быть, как проверять url на безопасность и т.д. Конкретно интересует маршрутизация сайта, построенного по принципу MVC. Знаю что нужно разбивать адрес на сегменты, но как правильно должен выглядеть адрес? (Например "/контроллер/действие/параметр").

2. Для чего служат базовые контроллеры и зачем остальным контроллерам наследовать их свойства?

P.S. Если не трудно, то пожалуйста скиньте ссылку на какую-нибудь полезную статью. И пожалуйста не надо меня убеждать не изобретать велосипед и использовать фреймворки. Ведь чтобы уметь правильно пользоваться фреймворком, надо хорошо знать как он работает)) Заранее благодарен.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
1. Маршрутизация может выглядеть как угодно. С точки зрения поисковых оптимизаций и человеческого чтения, выгодно, что бы по УРЛ можно было понять, какое содержимое там расположено. Технически — ты по этому урлу должен иметь однозначную ассоциацию с контроллером и действием. Например, так:
Безымянный.png

Тут правда много «старых» урлов, от предыдущей версии сайта, их тоже желательно сохранять, и по ним отдавать правильные редиректы на новые.
 

флоппик

promotor fidei
Команда форума
Партнер клуба
2. Ну очевидно, что бы выделить повторяющийся код в одно место.
 

Тугай

Новичок
Если речь об маршрутизации http запроса, то один из полных вариантов это например ZF2:Routing

Правила могут относится к хосту, методу запроса или к пути URI, можно выделять фрагменты и биндить их на параметры запроса.
Фрагменты выделяются через регулярные выражения или через символ разделитель /, тогда параметры помечают обычно двоеточием или еще каким-то образом.
Правила могут проверятся по методу LIFO или FIFO, или образовывать дерево.

Микро Фреймворки обычно проверяют сначала метод, потом путь URI, в порядке определения, т.е. FIFO.
В последней версии микрофреймворка Slim, появилась возможность строить проверку путей URI деревом, но нет возможности построить роутинг по хосту.

Короче есть варианты, все они полноценные. Есть много роутеров, которые проверяют только путь, а метод проверяется в контролерах.
Все ограничивается задачей и воображением :)
 

bersenev-98

Новичок
Если речь об маршрутизации http запроса, то один из полных вариантов это например ZF2:Routing

Правила могут относится к хосту, методу запроса или к пути URI, можно выделять фрагменты и биндить их на параметры запроса.
Фрагменты выделяются через регулярные выражения или через символ разделитель /, тогда параметры помечают обычно двоеточием или еще каким-то образом.
Правила могут проверятся по методу LIFO или FIFO, или образовывать дерево.

Микро Фреймворки обычно проверяют сначала метод, потом путь URI, в порядке определения, т.е. FIFO.
В последней версии микрофреймворка Slim, появилась возможность строить проверку путей URI деревом, но нет возможности построить роутинг по хосту.

Короче есть варианты, все они полноценные. Есть много роутеров, которые проверяют только путь, а метод проверяется в контролерах.
Все ограничивается задачей и воображением :)
Понятно, в общем теперь есть пища для размышлений. А за ссылочку отдельное спасибо :)
 
Сверху