Инициализирует новый экземпляр класса Yaf_Route_Regex

# Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__construct — Инициализирует новый экземпляр класса Yaf_Route_Regex

### Описание

public function 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)
    );

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

- Yaf_Router::addRoute() - Добавляет новый маршрут в маршрутизатор
- Yaf_Router::addConfig() - Добавляет настроенные маршруты в маршрутизатор
- Yaf_Route_Static
- Yaf_Route_Supervar
- Yaf_Route_Simple
- Yaf_Route_Rewrite
- Yaf_Route_Map

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open