Problema
Desea agregar middleware a su aplicación, pero no sé por dónde empezar.
Solución
Crear una clase de middleware simple.
Paso 1 - Crea la clase
Use Symfony \ Component \ httpfoundation \ request;
use Symfony \ Component \ Httpfoundation \ Response;
use Symfony \ Component \ httpkernel \ httpkernelinterface;
clase Middleware implementa httpkernelinterface
App $ protegido;
/**
* Constructor
*/
función pública __construct (httpkernelinterface $ app)
$ this-> app = $ app;
/**
* Manejar la solicitud, devolver la respuesta
*
* @implements httpkernelinterface :: handle
*
* @param \ symfony \ componente \ httpfoundation \ solicitud $ request
* @param int $ type
* @param bool $ catch
* @return \ symfony \ componente \ httpfoundation \ respuesta
*/
Mango de función pública (solicitud $ solicitud,
$ type = httpkernelinterface :: master_request, $ capt = true)
// 1) Modifique la solicitud entrante si es necesario
…
// 2) cadena el controlador de aplicaciones para obtener la respuesta
$ respuesta = $ this-> app-> handle ($ solicitud, $ type, $ capt);
// 3) Modifique la respuesta si es necesario
…
// 4) Devuelve la respuesta
devolver $ respuesta;
?>
Paso 2 - Registre la clase de middleware
Debe hacer esto en el método de registro () de un proveedor de servicios.
Aplicación :: middleware ('myApp \ middleware');
Alternativamente, puede instalar un paquete simple que creé que le permite registrar su middleware en aplicación/inicio/prebotón.php.
Ver Laravel-Hooks para más detalles.
Discusión
La clase anterior no hace nada.
Pero es un buen esqueleto para empezar. Obviamente, deberá cambiar el espacio de nombres y el nombre de clase para que se ajuste a su aplicación.
Entonces es posible que desee intentar registrar algo para asegurarse de que funcione. Puede actualizar el método Handle () de su clase como se especifica a continuación.
// en el paso #1) Modifique la solicitud entrante si es necesario
// Registre a un archivo. Desde la aplicación/inicio/global.PHP no ha sido golpeado
// Sin embargo, la fachada de registro aún no está configurada para registrar un archivo todavía. Por lo que sólo
// Escribir directamente a un archivo.
$ logFile = storage_path ().'/Logs/Laravel.registro';
error_log ("Entrada de middleware \ n", 3, $ logFile);
// en el paso #3) Modifique la respuesta si es necesario
// Registre a un archivo. Estamos seguros de usar la fachada de registro ahora que
// debe configurarse en App/Start/Global.php
Registro :: info ("Salida de middleware");
Ahora puedes examinar tu aplicación/almacenamiento/registros/laravel.registro
Archivo para ver que su middleware funcione.