FuelPHP - Routage

Les cartes de routage demandent un URI à la méthode d'un contrôleur spécifique. Dans ce chapitre, nous aborderons le concept derouting dans FuelPHP en détail.

Configuration

Le fichier de configuration des routes se trouve dans fuel/app/config/routes.php. Le défautroutes.php le fichier est défini comme suit -

<?php 
   return array ( 
      '_root_'  => 'welcome/index',   // The default route 
      '_404_'   => 'welcome/404',     // The main 404 route 
      'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'), 
   );

Ici, _root_est la route par défaut prédéfinie, qui sera mise en correspondance lorsque l'application est demandée avec le chemin racine, / par exemple http: // localhost: 8080 / . La valeur de _root_ est le contrôleur et l'action à résoudre lorsqu'elle est mise en correspondance.welcome/indexrésout le contrôleur Controller_Welcome et la méthode d'action action_index . De même, nous avons les routes réservées suivantes.

  • root - La route par défaut lorsqu'aucun URI n'est spécifié.

  • 403 - Il lance lorsque HttpNoAccessException est trouvé.

  • 404 - Il revient lorsque la page n'est pas trouvée.

  • 500 - Il lance lorsque HttpServerErrorException est trouvé.

Routage simple

L'itinéraire est comparé à l'URI de la demande. Si une correspondance est trouvée, la demande est acheminée vers l'URI. Le routage simple est décrit comme suit,

return array ( 
   'about'  => 'site/about', 
   'login' => 'employee/login', 
);

Ici, about correspond à http: // localhost: 8080 / about et résout le contrôleur, Controller_Site et la méthode d'action, action_about

login correspond à http: // localhost: 8080 / login et résout le contrôleur, Controller_Login et la méthode d'action, action_login

Routage avancé

Vous pouvez inclure n'importe quelle expression régulière dans vos itinéraires. Fuel prend en charge les fonctionnalités de routage avancées suivantes -

  • :any - Cela correspond à n'importe quoi à partir de ce point dans l'URI, ne correspond pas à «rien»

  • :everything - Comme: tout, mais correspond également à «rien»

  • :segment - Cela correspond à seulement 1 segment dans l'URI, mais ce segment peut être n'importe quoi

  • :num - Cela correspond à tous les nombres

  • :alpha - Cela correspond à tous les caractères alpha, y compris UTF-8

  • :alnum - Cela correspond à tous les caractères alphanumériques, y compris UTF-8

Par exemple, l'itinéraire suivant correspond à l'URI http: // localhost: 8080 / hello / FuelPHP et résout controller, Controller_Welcome et action action_hello

'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

La méthode d'action correspondante dans Controller_Welcome est la suivante,

public function action_hello() { 
   $this->name = Request::active()->param('name', 'World'); 
   $message = "Hello, " . $this->name;  
   echo $message; 
}

Ici, nous avons utilisé la classe Request pour obtenir le paramètre de nom à partir de l'URL. Si le nom n'est pas trouvé, nous utilisons World comme valeur par défaut. Nous allons apprendre la classe Request dans le chapitre Request and Response .

Résultat

Action de la méthode HTTP

FuelPHP prend en charge les routes pour correspondre aux actions préfixées par la méthode HTTP. Voici la syntaxe de base.

class Controller_Employee extends Controller { 
   public function get_index() { 
      // called when the HTTP method is GET. 
   }  
   public function post_index(){ 
      // called when the HTTP method is POST. 
   } 
}

Nous pouvons acheminer vos URL vers les contrôleurs et les actions en fonction du verbe HTTP dans le fichier de configuration comme suit.

return array ( 
   // Routes GET /employee to /employee/all and POST /employee to /employee/create 
   ‘employee’ => array(array('GET', new Route(‘employee/all')), array('POST', 
      new Route(‘employee/create'))), 
);