laravel中间件的实现原理
2024-09-01 13:50:38
中间件的实现原理
运用 array_reduce
以及 call_user_func
实现
interface Middleware
{
public static function handle(Closure $next);
}
class VerfiyCsrfToekn implements Milldeware{
public static function handle(Closure $next) {
echo '验证csrf Token <br>';
$next();
}
}
class VerfiyAuth implements Milldeware{
public static function handle(Closure $next) {
echo '验证是否登录 <br>';
$next();
}
}
class SetCookie implements Milldeware{
public static function handle(Closure $next) {
$next();
echo '设置cookie信息!';
}
}
$handle = function () {
echo '当前要执行的程序!';
};
$pipe_arr = [ 'VerfiyCsrfToekn', 'VerfiyAuth', 'SetCookie', ];
$callback = array_reduce($pipe_arr, function ($stack, $pipe) {
return function () use ($stack, $pipe) {
return $pipe::handle($stack);
};
}, $handle);
call_user_func($callback);
最新文章
- Android stdio Apktool源码编译
- ES5/标准 ECMAScript 内置对象
- (ExtJs 3.4)Ext.Ajax.request的同步请求实现
- javascript篇-----函数作用域,函数作用域链和声明提前
- 提高SQL查询效率(SQL优化)
- Simple File System
- jQuery简介及语法
- Css杂谈
- 在Linux下查看环境变量
- Java程序猿JavaScript学习笔记(2——复制和继承财产)
- 用For Each语句对Session.Contents树组进行遍历
- ios 返回不会自动刷新页面问题
- 避免Toast重复弹出
- 为什么很多应用都安装在/usr/local目录下?
- GitHub如何删除一个仓库
- Oracle管理监控之sqlplus实现上下翻页设置
- 在数组中找出两数之和为10的所有组合(JAVA)
- SQL 处理排序空值
- BZOJ2588:Count on a tree(主席树)
- 20145335郝昊《java程序设计》第7周学习总结