Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
$route->addRule(
'/news/{id}/',
array(
'controler' = 'news',
'action' = 'showOne'
)
);
$route->addRule(
'/news/{id}/',
array(
'controler' = 'news',
'action' = 'showOne'
)
);<route match="user" controller="user" action="list">
<route controller="user" action="user" match="id{user_id|num}">
<route match="comments" controller="user" action="comments" />
<route match="wall" controller="user" action="wall" />
</route>
<route controller="user" action="user" match="{login}">
<route match="comments" controller="user" action="comments" />
<route match="wall" controller="user" action="wall" />
</route>
</route>
Хотелось хранить правила роутинга в 1 файле и чтобы вид был стандартизирован
Мне же хотелось большей гибкости в настройке роутинга и в конечном итоге решил использовать XML для хранения правил, а после парсинга файла и создания массива правил сериализовывать его в файл (в дальнейшем используя его для получения настроек)
Гораздо лучше видно дерево правил
<page>
<subpage>
</page>
Соответственно в случае, если совпадения по правилам роутинга найдены не будут, вернётся 404 ошибка, в случае пустого урл — его index значение
<root>
<routes>
<route match="user" controller="user" action="list">
<route controller="user" action="user" match="{login}">
<route match="comments" controller="user" action="comments" />
<route match="wall" controller="user" action="wall" />
</route>
</route>
</routes>
</root>
Если хранить роутинг в разных страницах, при больших объёмах можно просто забыть где и что лежит, свой вариант считаю вполне удобным.
В дальнейшем, при последующих запросах разумеется, обновляется путём удаление файла *.dat
Роутинг обновляется очень редко, не хотел каждый раз проверять время изменения файла.
Быстрый роутинг на PHP