Maison > développement back-end > tutoriel php > Pipeline de traitement des requêtes php laravel (modèle de décorateur)

Pipeline de traitement des requêtes php laravel (modèle de décorateur)

angryTom
Libérer: 2023-04-07 20:46:02
avant
3369 Les gens l'ont consulté

Le middleware de Laravel utilise le modèle décorateur. Par exemple, vérifiez le mode de maintenance, le cryptage des cookies, les sessions ouvertes, etc. Certains de ces processus sont avant la réponse, et d'autres après la réponse. Le mode décorateur est utilisé pour réduire ou ajouter dynamiquement des fonctions, ce qui améliore considérablement l'évolutivité du framework.

Pipeline de traitement des requêtes php laravel (modèle de décorateur)

Ce qui suit est un exemple simple d'utilisation du modèle de décorateur pour maintenir l'implémentation de Session.

1. Le mode décorateur n'est pas utilisé et le module (méthode WelcomeController::index) doit être modifié.

class WelcomeController
{
    public function index()
    {
        echo 'session start.', PHP_EOL;
        echo 'hello!', PHP_EOL;
        echo 'session close.', PHP_EOL;
    }
}
Copier après la connexion

2. Utilisez le mode décorateur, $pipeList représente le tableau middleware qui doit être exécuté. La clé réside dans l’utilisation de la fonction array_reduce.

class WelcomeController
{
    public function index()
    {
        echo 'hello!', PHP_EOL;
    }
}
interface Middleware
{
    public function handle(Closure $next);
}
class Seesion implements Middleware
{
    public function handle(Closure $next)
    {
        echo 'session start.', PHP_EOL;
        $next();
        echo 'session close.', PHP_EOL;
    }
}
$pipeList = [
    "Seesion",
];
 
function _go($step, $className)
{
    return function () use ($step, $className) {
        $o = new $className();
        return $o->handle($step);
    };
}
 
$go = array_reduce($pipeList, '_go', function () {
    return call_user_func([new WelcomeController(), 'index']);
});
$go();
Copier après la connexion

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal