Роутинг

Возможность роутить запросы на нужные контроллеры без использования аддона 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'
)