Yaf_Route_Rewrite::__construct
PHP Manual
PHP Manual»Yaf_Route_Rewrite»Yaf_Route_Rewrite::__construct

Yaf_Route_Rewrite::__construct

(Yaf >=1.0.0)

Yaf_Route_Rewrite::__construct — Constructeur Yaf_Route_Rewrite

Description

public function Yaf_Route_Rewrite::__construct(string $match, array $route, array $verify = ?)

Liste de paramètres

match

Un masque, qui sera utilisé pour correspondre à l'URI d'une requête ; s'il ne correspond pas, Yaf_Route_Rewrite retournera false.

Il est possible d'utiliser le style :name pour nommer les segments correspondants, et * pour correspondre au reste des segments de l'URL.

route

Lorsque le masque correspond à l'URI de la requête, Yaf_Route_Rewrite utilisera ce paramètre pour déterminer quels module/contrôleur/action sont la destination.

Chacun des éléments module/contrôleur/action de ce tableau est optionnel ; si aucune valeur spécifique n'est assignée, la route par défaut sera utilisée.

verify

Valeurs de retour

Exemples

Exemple #1 Exemple avec Yaf_Route_Rewrite

<?php
   /**
    * Ajoute une route de réécriture à la pile de routes de Yaf_Router
    */
    Yaf_Dispatcher::getInstance()->getRouter()->addRoute("name",
        new Yaf_Route_Rewrite(
           "/product/:name/:id/*", //correspond aux URI de requête commençant par "/product"
           array(
               'controller' => "product",  //route vers le contrôleur product,
           ),
        )
    );
?>

Résultat de l'exemple ci-dessus est similaire à :

/* pour http://yourdomain.com/product/foo/22/foo/bar
 * la route donnera les valeurs suivantes :
 */
array(
  "controller" => "product",
  "module"     => "index", //(par défaut)
  "action"     => "index", //(par défaut)
)

/**
 * et les paramètres de requête :
 */
array(
  "name" => "foo",
  "id"   => 22,
  "foo"  => bar
)

Exemple #2 Exemple avec Yaf_Route_Rewrite

<?php
   /**
    * Ajoute une route de réécriture à la pile de routes de Yaf_Router en appelant addconfig
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",        //route Yaf_Route_Rewrite
           "match" => "/user-list/:id", //correspond uniquement à /user/list/?/
           "route" => array(
               'controller' => "user",  //route vers le contrôleur user,
               'action'     => "list",  //route vers l'action list
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Résultat de l'exemple ci-dessus est similaire à :

/* pour http://yourdomain.com/user-list/22
 * la route donnera les valeurs suivantes :
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(par défaut)
)

/**
 * et les paramètres de requête :
 */
array(
  "id"   => 22,
)

Exemple #3 Exemple avec Yaf_Route_Rewrite (à partir de 2.3.0)

<?php
   /**
    * Ajoute une route de réécriture utilisant le résultat de la correspondance comme nom m/c/a
    */
    $config = array(
        "name" => array(
           "type"  => "rewrite",
           "match" => "/user-list/:a/:id", //correspond uniquement à /user-list/*
           "route" => array(
               'controller' => "user",   //route vers le contrôleur user,
               'action'     => ":a",     //route vers l'action :a
           ),
        ),
    );
    Yaf_Dispatcher::getInstance()->getRouter()->addConfig(
        new Yaf_Config_Simple($config));
?>

Résultat de l'exemple ci-dessus est similaire à :

/* pour http://yourdomain.com/user-list/list/22
 * la route donnera les valeurs suivantes :
 */
array(
  "controller" => "user",
  "action"     => "list",
  "module"     => "index", //(par défaut)
)

/**
 * et les paramètres de requête :
 */
array(
  "id"   => 22,
)

Voir aussi

To Top