Skip to content
AntonShevchuk edited this page Apr 3, 2012 · 14 revisions

Описание

Реализация роутинга, для организации ЧПУ. На данный момент реализован лишь роутинг "по умолчанию" - /module/controller/key1/value1/key2/value2

Настройки

На данный момент нет

Использование

Пока всё "по умолчанию"

В разработке

Исходя из идеологии юзабилити кода, надо бы сформировать требования к настройкам и использовании роутов.

Возможность получении информации о всех роутах в одном месте - возможно пока ограничимся одним конфигом, что не очень сочетается с модульностью. Как пример в ZFCore у каждого модуля может быть свой конфиг, и это удобно, но нет возможности отслеживать конфликты, и нет возможности быстро сооринтироваться по кастомному УРЛ в какой модуль нужно идти.

В обязательном порядке - при подключении/отключении роутов никаких изменений в коде более не требуется - т.е. схема с явным указанием используемого роута для URL принятого в ZF не годится.

Возможная конфигурация:

<?php
return array(
    // static route
    // url('users', 'login') => /login/
    'login' => array('users', 'login'), 

    // regexp route
    // url('users', 'profile', array('id'=>9)) => /users/9/
    'users/(0-9)+' => array('users', 'profile', array('id')),

    // regexp route 
    // url('users', '....', array('name'=>'root')) => /users/root/..../
    'users/(a-z0-9)+/:controller' => array('users', 'bookmarks', array('name')),
);

Использование:

<?php
$this->url('users', 'login');
$this->url('users', 'profile', array('id' => $id));
$this->url('users', 'profile', array('name' => $name));

Clone this wiki locally