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