Los filtros son ciertos conjuntos de reglas que pueden ser aplicados a una ruta. Pueden ser aplicados
antes o después de que se ejecute la lógica de una ruta. No obstante, descubrirás que los filtros que
se ejecutan antes son más útiles. Estos filtros pueden alterar el flujo de la aplicación si no se cumplen
una serie de reglas o criterios. Es una forma maravillosa de proteger nuestras rutas.
<?php
// app/filters.php
Route::filter('cumpleanos', function()
{
if (date('d/m') == '12/12') {
return View::make('cumpleanos');
}
});
Aquí tenemos nuestro primer filtro. Laravel nos da un archivo en app/filters.php como ubicación
genérica para nuestros filtros, pero podemos ponerlos donde queramos.
Usamos el método Route::filter() para crear un nuevo filtro. El primer parámetro es un nombre
amistoso que usaremos más tarde para aisgnar el filtro a una ruta. En este ejemplo he nombrado al
filtro cumpleanos . El segundo parámetro es un callback, que en este ejemplo es una Closure.
El callback es una función que es llamada cuando se ejecuta el filtro. Si devuelve un objeto de tipo
respuesta, como aquellos que usamos en la lógica de nuesutra ruta, la respuesta será devuelta y
servida en vez del resultado de la lógica de nuestra ruta. Si no hay respuesta desde el filtro, la lógica
de la ruta continuará normalmente.
<?php
// app/routes.php
Route::get('/', array(
'before' => 'cumpleanos',
function()
{
return View::make('hola');
}
));
Como puedes ver, hemos creado otra opción en nuestra matriz. El índice before le dice al framework
que queremos ejecutar nuestro filtro cumpleanos antes de que la lógica de la ruta sea ejecutada. El
valor cumpleanos es igual al apodo que le dimos a nuestro filtro.
Vamos a probar a ejecutar nuestra ruta / . Ahora, asumiendo que hoy no es el 12 de Diciembre, verás
la página de Laravel. Esto es porque la condición del filtro ha fallado y no se devuelve ninguna
respuesta.
No hay comentarios:
Publicar un comentario