Роутинг¶
Возможность роутить запросы на нужные контроллеры без использования аддона SEO. Маршруты задаются через схему в виде:
$schema = array(
'/route' => array(
'param1' => 'value1',
'param2' => 'value2',
)
);
где ключ массива — маршрут, значение — набор параметров, которые передадутся в $_REQUEST
при совпадении маршрута с REQUEST_URI
.
Выражения¶
*
— совпадение с любым URI[i]
— совпадение с целым числом[i:id]
— совпадение с целым числом и передача его в параметр id[a:action]
— буквенно-цифровое совпадение и передача его в параметр action[h:key]
— шестрадцатиричное совпадение и передача его в параметр key[:action]
— любое совпадение до следующего слеша или до конца URI и передача его в параметр action[create|edit:action]
— совпадение с create или edit и передача его в параметр action[*]
— любое совпадение до следующего слеша[*:trailing]
— любое совпадение до следующего слеша и передача его в параметр trailing[**:trailing]
— любое совпадение до конца URI слеша и передача его в параметр trailing[:format]?
— опциональный параметр, если сушествует - передача его в параметр format
Пример¶
$schema = array(
'/images/thumbnails/[i:w]/[i:h]?/[**:image_path]' => array(
'dispatch' => 'image.thumbnail'
)
);
URI: /images/thumbnails/100/80/detailed/0/image.png. Результат:
array(
'dispatch' => 'image.thumbnails',
'w' => 100,
'h' => 80,
'image_path' => 'detailed/0/image.png'
)
URI: /images/thumbnails/100/detailed/0/image.png. Результат:
array(
'dispatch' => 'image.thumbnails',
'w' => 100,
'h' => '',
'image_path' => 'detailed/0/image.png'
)