php laravel请求处理管道(装饰者模式)-php教程

资源魔 23 0
laravel的两头件应用了装璜者模式。比方,验证保护模式,cookie加密,开启会话等等。这些解决有些正在呼应前,有些正在呼应之后,应用装璜者模式静态缩小或添加性能,使患上框架可扩大性年夜年夜加强。

接上去简略举个例子,应用装璜者模式完成保护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 php开发教程 php开发资料 php开发自学 Laravel 装饰者模式

抱歉,评论功能暂时关闭!