Diferencia entre revisiones de «Usuario:ManuelRomero/Laravel/filtros»

De WikiEducator
Saltar a: navegación, buscar
(Página creada con «{{:Usuario:ManuelRomero/micursos/Laravel/filtros/nav}}»)
 
 
Línea 1: Línea 1:
 
{{:Usuario:ManuelRomero/micursos/Laravel/filtros/nav}}
 
{{:Usuario:ManuelRomero/micursos/Laravel/filtros/nav}}
 +
===Conceto===
 +
*Un filtro es una accion o verificación que queremos realizar o antes o después de ralizar una llamada a una ruta
 +
*En php los filtros se definen en el fichero '''''filter.php'''' ubicado en nuestro directorio app
 +
*Existen creados dos filtros por parte de laravel
 +
;before
 +
*Este filtro se ejecutará siempre antes de de cualquier otro filtro y por supuesto antes de cargar la página
 +
;after
 +
*Este filtro se ejecutará después de haber cargado la página y después de cualquier otro filtro before que hayamos creado.
 +
*Se conocen como filtros globales, y los podemos ver en el fichero anteriormente comentado
 +
<source lang=php>
 +
App::before(function($request)
 +
{/*
 +
Este código que se ejecuta siempre antes de cualquier ruta y  cualquier filtro before
 +
-----------
 +
$request es una variable con información de la solicitud del usuario  que ha echo que se lance este filtro
 +
*/
 +
});
 +
 +
 +
App::after(function($request, $response)
 +
{
 +
/*
 +
Este código que se ejecuta siempre antes de cualquier ruta y  cualquier filtro before
 +
-----------
 +
$request es la misma variable que la de before
 +
$response contiene información de la respuesta enviada al usuario
 +
*/
 +
//
 +
});
 +
</source>
 +
{{Actividad|
 +
Vamos a hacer un filtro after y otro before
 +
Se ejecutarán antes y después de una llamada a una página
 +
Before generará un número aleatorio del 1 al 3. Si el valor es 2 mostrará un mensaje, si no no hará nada
 +
After simplemente mostrará un mensaje
 +
<source lang=php>
 +
</source>
 +
}}
 +
===Definiendo el filtro===
 +
*En el fichero filter.php
 +
<source lang=php>
 +
Route::filter('filtro_antes',function(){
 +
    $numero = rand(1, 3 );
 +
    echo 'Imprimiendo en el filtro antes '.$numero.' <br />';
 +
    if ( $numero == 2){
 +
        return 'Filtro retorna un texto, por lo tanto cambio el flujo';
 +
    }
 +
});
 +
 +
Route::filter('filtro_despues',function(){
 +
    echo 'Imprimiendo en el filtro despues<br />';
 +
});
 +
</source>
 +
*En el fichero routes.php
 +
===Usanto el filtro===
 +
<source lang=php>
 +
Route::get('/', array('before'=>'filtro_antes',
 +
                      'after'=>'filtro_despues',
 +
                      function(){
 +
                              echo'Página principal<br/>';}
 +
                      )
 +
                      );
 +
 +
</source>

Última revisión de 18:55 13 feb 2015


Conceto

  • Un filtro es una accion o verificación que queremos realizar o antes o después de ralizar una llamada a una ruta
  • En php los filtros se definen en el fichero filter.php' ubicado en nuestro directorio app
  • Existen creados dos filtros por parte de laravel
before
  • Este filtro se ejecutará siempre antes de de cualquier otro filtro y por supuesto antes de cargar la página
after
  • Este filtro se ejecutará después de haber cargado la página y después de cualquier otro filtro before que hayamos creado.
  • Se conocen como filtros globales, y los podemos ver en el fichero anteriormente comentado
App::before(function($request)
{/*
Este código que se ejecuta siempre antes de cualquier ruta y  cualquier filtro before
-----------
$request es una variable con información de la solicitud del usuario  que ha echo que se lance este filtro
*/
});
 
 
App::after(function($request, $response)
{
/*
Este código que se ejecuta siempre antes de cualquier ruta y  cualquier filtro before
-----------
$request es la misma variable que la de before
$response contiene información de la respuesta enviada al usuario
*/
	//
});


Icon activity.jpg

Actividad

Vamos a hacer un filtro after y otro before Se ejecutarán antes y después de una llamada a una página Before generará un número aleatorio del 1 al 3. Si el valor es 2 mostrará un mensaje, si no no hará nada After simplemente mostrará un mensaje

 




Definiendo el filtro

  • En el fichero filter.php
Route::filter('filtro_antes',function(){
    $numero = rand(1, 3 );
    echo 'Imprimiendo en el filtro antes '.$numero.' <br />';
    if ( $numero == 2){
        return 'Filtro retorna un texto, por lo tanto cambio el flujo';
    }
});
 
Route::filter('filtro_despues',function(){
    echo 'Imprimiendo en el filtro despues<br />';
});
  • En el fichero routes.php

Usanto el filtro

Route::get('/', array('before'=>'filtro_antes',
                      'after'=>'filtro_despues',
                       function(){
                               echo'Página principal<br/>';}
                       )
                       );