Problème
Vous voulez ajouter du middleware à votre application, mais je ne sais pas par où commencer.
Solution
Créer une classe middleware simple.
Étape 1 - Créez la classe
Utiliser Symfony \ Component \ httpFoundation \ request;
Utiliser Symfony \ Component \ HttpFoundation \ Response;
Utilisez Symfony \ Component \ httpkernel \ httpkerneLinterface;
classe Middleware implémente httpkerneLinterface
Application $ protégé;
/ **
* Constructeur
* /
Fonction publique __construct (httpkerneLinterface $ app)
$ this-> app = $ app;
/ **
* Gérer la demande, retourner la réponse
*
* @Implements httpkerneLinterface ::
*
* @param \ symfony \ composant \ httpfoundation \ request $ request
* @param int $ type
* @param bool $ catch
* @return \ symfony \ composant \ httpfoundation \ réponse
* /
Poignée de la fonction publique (demande $ demande,
$ type = httpkerneLinterface :: Master_Request, $ catch = true)
// 1) Modifier la demande entrante si nécessaire
…
// 2) enchaîner le gestionnaire d'applications pour obtenir la réponse
$ réponse = $ this-> app-> manche ($ request, $ type, $ catch);
// 3) Modifier la réponse si nécessaire
…
// 4) Renvoyez la réponse
retour $ réponse;
?>
Étape 2 - Enregistrez la classe de middleware
Vous devez le faire dans la méthode Register () d'un fournisseur de services.
App :: middleware ('myapp \ middleware');
Vous pouvez également installer un package simple que j'ai créé qui vous permet d'enregistrer votre middleware dans application / démarrage / pré-boot.php.
Voir Laravel-Hooks pour plus de détails.
Discussion
La classe ci-dessus ne fait rien.
Mais c'est un bon squelette pour commencer. De toute évidence, vous devrez modifier l'espace de noms et le nom de classe pour s'adapter à votre application.
Alors vous voudrez peut-être essayer de journaliser quelque chose pour vous assurer que cela fonctionne. Vous pouvez mettre à jour la méthode Handle () de votre classe comme spécifié ci-dessous.
// à l'étape n ° 1) Modifiez la demande entrante si nécessaire
// connecte à un fichier. Depuis l'application / start / global.PHP n'a pas été touché
// Pourtant, la façade du journal n'est pas encore définie sur un fichier. Donc juste
// Écrivez directement dans un fichier.
$ logfile = Storage_Path ().'/ Logs / Laravel.enregistrer';
error_log ("Middleware Entry \ n", 3, $ logfile);
// à l'étape # 3) Modifier la réponse si nécessaire
// connecte à un fichier. Nous sommes en sécurité d'utiliser la façade en rondins maintenant que
// il devrait être configuré dans l'application / start / global.php
Log :: info ("middleware sort");
Vous pouvez maintenant examiner votre application / stockage / journaux / laravel.enregistrer
fichier pour voir que votre middleware fonctionne.