FuelPHP - Roteamento

Os mapas de roteamento solicitam um URI para um método de controlador específico. Neste capítulo, discutiremos o conceito derouting em FuelPHP em detalhes.

Configuração

O arquivo de configuração de rotas está localizado em fuel/app/config/routes.php. O padrãoroutes.php arquivo é definido da seguinte forma -

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

Aqui, _root_é a rota padrão predefinida, que será correspondida quando o aplicativo for solicitado com o caminho da raiz, / por exemplo, http: // localhost: 8080 / . O valor de _root_ é o controlador e a ação a ser resolvida quando houver correspondência.welcome/indexresolve para o controlador Controller_Welcome e o método de ação action_index . Da mesma forma, temos as seguintes rotas reservadas.

  • root - A rota padrão quando nenhum URI é especificado.

  • 403 - É gerado quando HttpNoAccessException é encontrado.

  • 404 - Retorna quando a página não é encontrada.

  • 500 - Lança quando HttpServerErrorException é encontrado.

Roteamento Simples

A rota é comparada ao URI da solicitação. Se uma correspondência for encontrada, a solicitação é roteada para o URI. O roteamento simples é descrito a seguir,

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

Aqui, about corresponde a http: // localhost: 8080 / about e resolve o controlador, Controller_Site e método de ação, action_about

login corresponde a http: // localhost: 8080 / login e resolve o controlador, Controller_Login e método de ação, action_login

Roteamento Avançado

Você pode incluir qualquer regex em suas rotas. O combustível suporta os seguintes recursos avançados de roteamento -

  • :any - Corresponde a qualquer coisa daquele ponto em diante no URI, não corresponde a “nada”

  • :everything - Como: qualquer, mas também corresponde a “nada”

  • :segment - Corresponde a apenas 1 segmento no URI, mas esse segmento pode ser qualquer coisa

  • :num - Corresponde a qualquer número

  • :alpha - Corresponde a qualquer caractere alfa, incluindo UTF-8

  • :alnum - Corresponde a qualquer caractere alfanumérico, incluindo UTF-8

Por exemplo, a seguinte rota corresponde ao URI http: // localhost: 8080 / hello / FuelPHP e resolve o controlador, Controller_Welcome e ação action_hello

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

O método de ação correspondente em Controller_Welcome é o seguinte,

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

Aqui, usamos a classe Request para obter o parâmetro de nome do URL. Se o nome não for encontrado, estamos usando World como valor padrão. Aprenderemos a classe Request no capítulo Request and Response .

Resultado

Ação de método HTTP

FuelPHP oferece suporte a rotas para corresponder às ações prefixadas do método HTTP. A seguir está a sintaxe básica.

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. 
   } 
}

Podemos rotear seus URLs para controladores e ações com base no verbo HTTP no arquivo de configuração da seguinte maneira.

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'))), 
);