IDeal
В предыдущих постах мы разработали минимальную структуру фреймворка. В этой статье, наведем немного лоска - добавим простенькую тему с bootstrap'ом, меню и подробнее рассмотрим работу шаблонизатора и роутера (маршрутизатора сайта).
Роутер
В прошлой статье мы создали роутер, который используя логику регулярных выражений распознает входящую sef ссылку и направляет на нужный контроллер и его метод.
Т.е. из такой строки
/user/profile/12
роутер делает массив
array('controller'=>'user','action'=>'profile', 'id'=>15)
Мы не стали в прошлый раз писать пример использования такого решения. Исправим ситуацию, но перед этим доработаем роутер.
Перенесем массив правил роутера в конфигурационный файл фреймворка. Этот массив будут заполнять разработчики, которые будут писать сайты на нашем фреймворке. Поэтому он должен быть максимально доступен.
...
'router' => array(
'([a-z0-9+_\-]+)/([a-z0-9+_\-]+)/([0-9]+)' => '$controller/$action/$id',
'([a-z0-9+_\-]+)/([a-z0-9+_\-]+)' => '$controller/$action',
'([a-z0-9+_\-]+)(/)?' => '$controller',
),
...
Кроме того вы можете видеть, что мы изменили правую часть массива.