FuelPHP - Enrutamiento
Los mapas de enrutamiento solicitan un URI al método de un controlador específico. En este capítulo, discutiremos el concepto derouting en FuelPHP en detalle.
Configuración
El archivo de configuración de rutas se encuentra en fuel/app/config/routes.php. El valor por defectoroutes.php archivo se define de la siguiente manera:
<?php
return array (
'_root_' => 'welcome/index', // The default route
'_404_' => 'welcome/404', // The main 404 route
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
);
Aquí, _root_es la ruta predeterminada predefinida, que coincidirá cuando se solicite la aplicación con la ruta raíz, por ejemplo, http: // localhost: 8080 / . El valor de _root_ es el controlador y la acción que se resolverá cuando coincida .welcome/indexresuelve el controlador Controller_Welcome y el método de acción action_index . De igual forma, tenemos las siguientes rutas reservadas.
root - La ruta predeterminada cuando no se especifica ningún URI.
403 - Lanza cuando se encuentra HttpNoAccessException.
404 - Vuelve cuando no se encuentra la página.
500 - Lanza cuando se encuentra HttpServerErrorException.
Enrutamiento simple
La ruta se compara con el URI de solicitud. Si se encuentra una coincidencia, la solicitud se enruta al URI. El enrutamiento simple se describe a continuación,
return array (
'about' => 'site/about',
'login' => 'employee/login',
);
Aquí, about coincide con http: // localhost: 8080 / about y resuelve el controlador, Controller_Site y el método de acción, action_about
login coincide con http: // localhost: 8080 / login y resuelve el controlador, Controller_Login y el método de acción, action_login
camino avanzado
Puede incluir cualquier expresión regular en sus rutas. Fuel admite las siguientes funciones avanzadas de enrutamiento:
:any - Esto coincide con cualquier cosa a partir de ese momento en el URI, no coincide con "nada"
:everything - Me gusta: cualquiera, pero también coincide con "nada"
:segment - Esto coincide solo con 1 segmento en el URI, pero ese segmento puede ser cualquier cosa
:num - Esto coincide con cualquier número
:alpha - Esto coincide con cualquier carácter alfabético, incluido UTF-8
:alnum - Esto coincide con cualquier carácter alfanumérico, incluido UTF-8
Por ejemplo, la siguiente ruta coincide con el URI http: // localhost: 8080 / hello / FuelPHP y resuelve controller, Controller_Welcome y action action_hello
'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),
El método de acción correspondiente en Controller_Welcome es el siguiente,
public function action_hello() {
$this->name = Request::active()->param('name', 'World');
$message = "Hello, " . $this->name;
echo $message;
}
Aquí, hemos utilizado la clase Request para obtener el parámetro de nombre de la URL. Si no se encuentra el nombre, entonces usamos Mundo como valor predeterminado. Aprenderemos la clase Solicitud en el capítulo Solicitud y respuesta .
Resultado
Acción del método HTTP
FuelPHP admite rutas para coincidir con las acciones prefijadas del método HTTP. A continuación se muestra la sintaxis 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 enrutar sus URL a controladores y acciones basadas en el verbo HTTP en el archivo de configuración de la siguiente manera.
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'))),
);