Yaf_Route_Regex::__construct
(Yaf >=1.0.0)
Yaf_Route_Regex::__construct — Конструктор класса Yaf_Route_Regex
Описание
$match
, array $route
, array $map
= ?
, array $verify
= ?
, string $reverse
= ?
)
Список параметров
-
match
-
Готовый шаблон регулярного выражения будет использоваться для проверки соответствия URI запроса; если не совпадает, Yaf_Route_Regex вернет
false
. -
route
-
Когда шаблон соответствия соответствует URI запроса, Yaf_Route_Regex будет решать, к какому маршруту m/c/a он относится.
Любой из m/c/a в этом массиве - необязательный, если вы не назначите какое-либо значение, он перенаправит на маршрут по умолчанию.
-
map
-
Массив для назначения имени совпадениям (captures).
-
verify
-
-
reverse
-
Строка, используемая для формирования URL, смотрите Yaf_Route_Regex::assemble().
Замечание:
Этот параметр был представлен в версии 2.3.0
Возвращаемые значения
Примеры
Пример #1 Пример использования Yaf_Route_Regex()
<?php
/**
* Добавить маршрут регулярного выражения в стек маршрута Yaf_Router Yaf_Router
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/([^/]+)/([^/])+#", // совпадение с URI запроса, начинающегося с "/product"
array(
'controller' => "product", // маршрут на контроллер product,
),
array(
1 => "name", // теперь вы можете вызвать $request->getParam("name")
2 => "id", // для получения первого совпадения в шаблоне.
)
)
);
?>
Пример #2 Пример использования Yaf_Route_Regex (с версии 2.3.0)()
<?php
/**
* Использовать результат совпадения в качестве имени MVC
*/
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
/**
* Использовать результат совпадения в качестве имени MVC
*/
Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
new Yaf_Route_Regex(
"#^/product/(?<name>[^/]+)/([^/])+#i", //match request uri leading "/product"
array(
'controller' => ":name", // маршрут на :name,
// который называется именем группы совпадения 'name' в результате совпадения как имя контроллера
),
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", // маршрут на контроллер product,
'action' => "dummy", // маршрут на действие dummy
),
"map" => array(
1 => "uri", // теперь вы можете вызвать $request->getParam("uri")
),
),
);
Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
new Yaf_Config_Simple($config));
?>
Смотрите также
- Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
- Yaf_Router::addConfig() - Добавляет настроенные маршруты в маршрутизатор
- Yaf_Route_Static
- Yaf_Route_Supervar
- Yaf_Route_Simple
- Yaf_Route_Rewrite
- Yaf_Route_Map