ホームページ >バックエンド開発 >PHPチュートリアル >php laravelリクエスト処理パイプライン(デコレータパターン)
Laravel のミドルウェアはデコレータ パターンを使用します。たとえば、メンテナンス モード、Cookie 暗号化、オープン セッションなどを確認します。これらの処理には、応答前と応答後の処理があり、デコレータ モードを使用して動的に機能を削減または追加することで、フレームワークのスケーラビリティが大幅に向上します。
#次に、デコレータ パターンを使用してセッション実装を維持する簡単な例を示します。
1. デコレータ モードは使用されないため、モジュール (WelcomeController::index メソッド) を変更する必要があります。
class WelcomeController { public function index() { echo 'session start.', PHP_EOL; echo 'hello!', PHP_EOL; echo 'session close.', PHP_EOL; } }
2. デコレータ モードを使用し、$pipeList は実行する必要があるミドルウェア配列を表します。鍵となるのは、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();
PHP 関連の知識については、PHP 中国語 Web サイトをご覧ください。
以上がphp laravelリクエスト処理パイプライン(デコレータパターン)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。