Yaf_Route_Regex::__construct

(Yaf >=1.0.0)

Yaf_Route_Regex::__constructConstrutor de Yaf_Route_Regex

Descrição

public function Yaf_Route_Regex::__construct(
    string $match,
    array $route,
    array $map = ?,
    array $verify = ?,
    string $reverse = ?
)

Parâmetros

match

Uma expressão regular completa. Será usada para corresponder a uma URI de requisição. Se não corresponder, Yaf_Route_Regex retornará false.

route

Quando a expressão corresponder ao URI, Yaf_Route_Regex usará este parâmetro para decidir que valores m/c/a serão usados na rota.

Qualquer dos valores de m/c/a neste array é opcional. Se não for especificado um valor, será usado o roteamento padrão.

map

Um array para atribuir nomes aos grupos de captura no resultado da correspondência.

verify

reverse

Uma string usada para montar o URL, consulte Yaf_Route_Regex::assemble().

Nota:

Este parâmetro está disponível a partir do Yaf 2.3.0.

Valor Retornado

Exemplos

Exemplo #1 Exemplo de Yaf_Route_Regex

<?php
   /**
    * Adiciona uma rota "regex" à pilha de rotas Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#", // corresponde a um URI iniciando com "/product"
           array(
               'controller' => "product",  // rota para o controlador de "/product",
           ),
           array(
              1 => "name",   // agora é possível chamar $request->getParam("name")
              2 => "id",     // para obter o primeiro grupo de captura na expressão correspondida.
           )
        )
    );
?>

Exemplo #2 Exemplo de Yaf_Route_Regex (a partir do Yaf 2.3.0)

<?php
   /**
    * Usa o resultado da correspondência como nome MVC
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/([^/]+)/([^/])+#i", // corresponde ao URI iniciando com "/product"
           array(
              'controller' => ":name", // rota para :name, que é $1 no resultado da correspondência como o nome do controlador
           ),
           array(
              1 => "name",   // agora é possível chamar $request->getParam("name")
              2 => "id",     // para obter o primeiro grupo de captura na expressão correspondida.
           )
        )
    );
?>

Exemplo #3 Exemplo de Yaf_Route_Regex e grupo de captura nomeado (a partir do Yaf 2.3.0)

<?php
   /**
    * Usa o resultado da correspondência como nome MVC
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Regex(
           "#^/product/(?<name>[^/]+)/([^/])+#i", // corresponde ao URI iniciando com "/product"
           array(
           'controller' => ":name", // rota para :name,
                                    // que é o grupo de captura nomeado 'name' no resultado da correspondência como o nome do controlador
           ),
           array(
              2 => "id",
           )
        )
    );
?>

Exemplo #4 Exemplo de Yaf_Route_Regex

<?php
   /**
    * Adiciona uma rota "regex" à pilha de rotas Yaf_Router chamando addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "regex",          // rota Yaf_Route_Regex
           "match" => "#(.*)#",         // corresponde a um URI de requisição genérico
           "route" => array(
               'controller' => "product",  // rota para o controlador de "product",
               'action'     => "dummy",    // rota para uma ação "dummy"
           ),
           "map" => array(
              1 => "uri",   // agora pode-se chamar $request->getParam("uri")
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Veja Também