• Как написать свой фреймворк на php. Роутер и Шаблонизатор. Урок 3

    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',
    ),
    ...

    Кроме того вы можете видеть, что мы изменили правую часть массива.