(Yaf >=1.0.0)
Yaf_Route_Regex::__construct — Инициализирует новый экземпляр класса Yaf_Route_Regex
$match,$route,$map = ?,$verify = ?,$reverse = ?
match
Регулярное выражение для проверки соответствия URI запроса шаблону.
При несовпадении URI объект Yaf_Route_Regex вернёт значение false.
routeМассив с правилами построения маршрута. При совпадении URI запроса с шаблоном объект Yaf_Route_Regex построит маршрут и направит запрос в модуль, контроллер и (или) действие.
Ни один компонент маршрута не относится к обязательным, маршрутизатор подставит значение по умолчанию, если в массиве компоненту не присвоили конкретное значение.
mapМассив для назначения имён совпадениям, которые захватил шаблон в результате сопоставления.
verify
reverseСтрока для обратной сборки URL-адреса методом Yaf_Route_Regex::assemble().
Замечание:
Параметр доступен с Yaf 2.3.0.
Пример #1 Пример работы с классом Yaf_Route_Regex
<?php
/**
* Добавить в стек маршрутизатора Yaf_RouterПример маршрут на основе регулярного выражения
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#", // Соответствует URI запроса, который начинается с "/product"
array(
'controller' => "product", // Маршрут к контроллеру продукта
),
array(
1 => "name", // Вызов $request->getParam("name") теперь вернёт первое совпадение, которое захватил шаблон
2 => "id",
)
)
);Пример #2 Пример работы с классом Yaf_Route_Regex с версии 2.3.0
<?php
/**
* Обработать результат совпадения как имя MCA
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#i", // Соответствует URI запроса, который начинается с "/product"
array(
'controller' => ":name", // Маршрут к контроллеру, название которого получил заменитель :name
// в результате захвата совпадения $1
),
array(
1 => "name", // Вызов $request->getParam("name") вернёт первое захваченное шаблоном совпадение
2 => "id",
)
)
);Пример #3 Пример работы с классом Yaf_Route_Regex с версии 2.3.0
<?php
/**
* Обработать результат совпадения как имя MCA
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute(
"name",
new Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/])+#i", // Соответствует URI запроса, который начинается с "/product"
array(
'controller' => ":name", // Маршрут к контроллеру, название которого получил заменитель :name
// в результате захвата совпадения $1
),
array(
2 => "id",
)
)
);Пример #4 Пример работы с классом Yaf_Route_Regex
<?php
/**
* Добавить в стек маршрутизатора Yaf_Router маршрут на основе регулярного выражения
* путём вызова метода addConfig
*/
$config = array(
"name" => array(
"type" => "regex", // Маршрут Yaf_Route_Regex
"match" => "#(.*)#", // Совпадение с произвольным URI запроса
"route" => array(
'controller' => "product", // Маршрут к контроллеру продукта
'action' => "dummy", // Маршрут к бессмысленному действию
),
"map" => array(
1 => "uri", // Вызов $request->getParam("uri") теперь вернёт URI запроса
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config)
);