Problema
Você deseja adicionar middleware ao seu aplicativo, mas não sabe por onde começar.
Solução
Crie uma aula de middleware simples.
Etapa 1 - Crie a classe
use symfony \ component \ httpfoundation \ request;
Use Symfony \ Component \ httpfoundation \ Response;
use symfony \ component \ httpkernel \ httpkernelinterface;
classe Middleware implementa httpkernelinterface
App $ protegido;
/**
* Construtor
*/
Função pública __construct (httpkernelinterface $ app)
$ this-> app = $ app;
/**
* Lidar com a solicitação, retorne a resposta
*
* @implements httpkernelinterface :: handle
*
* @param \ symfony \ component \ httpfoundation \ request $ solicitação
* @param int $ tipo
* @param bool $ captura
* @return \ symfony \ component \ httpfoundation \ resposta
*/
identificador de função pública (solicitação $ solicitação,
$ type = httpkernelinterface :: master_request, $ catch = true)
// 1) Modifique a solicitação de entrada, se necessário
..
// 2) Corrente o manipulador de aplicativos para obter a resposta
$ resposta = $ this-> app-> handle ($ request, $ type, $ catch);
// 3) Modifique a resposta se necessário
..
// 4) Retorne a resposta
Retornar $ resposta;
?>
Etapa 2 - Registre a aula de middleware
Você precisa fazer isso no método registring () de um provedor de serviços.
App :: middleware ('myApp \ middleware');
Como alternativa, você pode instalar um pacote simples que eu criei que permite registrar seu middleware em aplicativo/start/pré -boot.php.
Veja os gancho de Laravel para obter detalhes.
Discussão
A classe acima não faz nada.
Mas é um bom esqueleto para começar. Obviamente, você precisará alterar o espaço para nome e o nome da classe para se ajustar ao seu aplicativo.
Então você pode querer tentar registrar algo para garantir que funcione. Você pode atualizar o método Handle () da sua classe, conforme especificado abaixo.
// Na etapa 1) modifique a solicitação de entrada, se necessário
// Faça login em um arquivo. Desde aplicativo/start/global.PHP não foi atingido
// No entanto, a fachada de log não está definida para fazer login em um arquivo ainda. Então apenas
// Escreva diretamente em um arquivo.
$ logfile = storage_path ().'/Logs/Laravel.registro';
error_log ("entrada do middleware \ n", 3, $ logfile);
// na etapa #3) Modifique a resposta se necessário
// Faça login em um arquivo. Estamos seguros para usar a fachada de log agora que
// Deve ser configurado no aplicativo/start/global.php
Log :: info ("saída do middleware");
Agora você pode examinar seu App/armazenamento/logs/Laravel.registro
arquivo para ver que seu middleware funciona.