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 запроса шаблону. При несовпадении 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)
);

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top