CakeFest 2024: The Official CakePHP Conference

Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__constructКонструктор класса Yaf_Route_Regex

Описание

public Yaf_Route_Regex::__construct(
    string $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));
?>

Смотрите также

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top