> 백엔드 개발 > PHP 튜토리얼 > PHP laravel 요청 처리 파이프라인(데코레이터 패턴)

PHP laravel 요청 처리 파이프라인(데코레이터 패턴)

angryTom
풀어 주다: 2023-04-07 20:46:02
앞으로
3400명이 탐색했습니다.

Laravel의 미들웨어는 데코레이터 패턴을 사용합니다. 예를 들어 유지 관리 모드, 쿠키 암호화, 열린 세션 등을 확인합니다. 이러한 프로세스 중 일부는 응답 전이고 일부는 응답 후입니다. 데코레이터 모드를 사용하여 기능을 동적으로 줄이거나 추가하면 프레임워크의 확장성이 크게 향상됩니다.

PHP laravel 요청 처리 파이프라인(데코레이터 패턴)

다음은 Session 구현을 유지하기 위해 데코레이터 패턴을 사용하는 간단한 예입니다.

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 중국어 웹사이트를 방문하세요!

위 내용은 PHP laravel 요청 처리 파이프라인(데코레이터 패턴)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿