针对HTTP服务来说,中间件贯穿着整个生命周期的位置

且看官方一张图片说明:

可以看到中间件是贯穿整个请求的,请求开始之后会:匹配路由->执行中间件->执行控制器方法->再次执行中间件。可以当作其他框架的前置方法和后置方法,中间件在调用控制器方法之前会执行,调用之后也还会执行。

中间件起到的作用

中间件在可以进行用户登陆的验证、权限校验、数据修正、统一返回格式等等,其实只要了解了生命周期之后基本上就可以想象到中间件的作用。

定义中间件

只需要实现了 Swoft\Http\Server\Contract\MiddlewareInterface 接口均为一个合法的中间件,其中 process() 方法为该中间件逻辑处理方法。不过我们通常把代码放在 app/Http/Middleware

app/Http/Middleware/SunnyMiddleware.php

配置全局中间件

中间件配置分为全局配置和局部配置,全局配置在app/bean.php中配置即可,局部配置需要用注解方式在控制器和方法上单独配置

 

1>, 添加全局中间件,所有控制器都会走这里的中间件,控制器不需要做任何改动

app/bean.php

2>, 添加局部中间件 && 嵌套中间件

当访问这个控制器的所有方法,所添加进来的中间件都会被执行。

eg,控制器使用多个中间件:

使用在方法的中间件,直接将Middleware定义于方法之前即可!

Swoft 2.X 中间件相关推荐

  1. Swoft 2 Beta 发布,基于 Swoole 的云原生协程框架

    Swoft 是首个基于 Swoole 原生协程的框架,从开发到发布据今已有2年多. 1.x 发布以来,已有大量的开发人员和企业使用,得到了大家的认可.从去年11月份开始,将近半年的时间从零开始,底层吸 ...

  2. php跨域请求解决方案_swoft2 -跨域与中间件详解

    本方案用于开发环境,在生产环境不建议使用,生产环境可以使用 nginx 的反向代理 一.什么是跨域? 同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS ...

  3. 阿里完成首个可控量子比特研发;45 名谷歌员工举报不公对待;Swoft 2.0.6 正式版发布 | 极客头条...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  4. swoft php怎么样,[原创]Swoole和Swoft的那些事 (Http/Rpc服务篇)

    Swoft在PHPer圈中是一个门槛较高的Web框架,不仅仅由于框架本身带来了很多新概念和前沿的设计,还在于Swoft是一个基于Swoole的框架.Swoole在PHPer圈内学习成本最高的工具没有之 ...

  5. 1.微服务-swoft入门

    Swoft介绍 1.swoft生命周期 ①.首先会调用相关处理器做相关的初始化工作 ②.注解信息扫描收集 2.框架快速入门 首个基于 Swoole 原生协程的新时代 PHP 高性能协程全栈框架,内置协 ...

  6. Swoft 2.x 详解Bean

    什么是Bean呢? Swoft中Bean是一个类的对象实例 每个被Swoft管理的PHP对象称之为Bean Swoft提供了一个IoC容器来初始化对象和获取对象,用来解决对象之间的依赖管理. 以前当我 ...

  7. Swoft 1.0 正式来袭,首个基于 Swoole 原生协程的框架

    历时 1 年多紧锣密鼓的开发,以及愉快而忙碌的春节假期,期间 github star 数从 500 到快破 1k,码云首页推荐,Swoole 作者 Rango 和社区的大力支持,Swoft 1.0 正 ...

  8. Swoft 系列教程:(2)认证服务及组件

    Swoft 提供了一整套认证服务组件,基本做到了配置后开箱即用.用户只需根据自身业务实现相应的登录认证逻辑,框架认证组件会调用你的登录业务进行token的签发,而后的请求中token解析.合法性验证也 ...

  9. Swoft入门及技术指南

    初识Swoft 参考素材 swoft官网:http://swoft.org/ 在线官方文://档:http://www.swoft.org/documents/v2/ http://swoft.org ...

最新文章

  1. springboot中使用poi导出excel文件(亲测实现了第一个功能)
  2. 阿里终面:为什么应用刚启动的时候比较卡,过一会就好了?
  3. CloudIDE插件开发实战:教你如何调试代码
  4. java excel 晒新年操作_java操作Excel的poi 创建一个sheet页
  5. 操作系统课程设计-模拟操作系统
  6. [学习笔记] 银华深证100指数分级证券投资基金
  7. c语言脱验证,CCAR.适航符合性验证思路简述
  8. UVA-11584:Partitioning by Palindromes(基础DP)
  9. symlink() 函数
  10. 经销、代销与联营的区别与联系详解
  11. 安装搜狗输入法无法切到搜狗
  12. hdu 2897 邂逅明下
  13. 运维监控系列(16)-Alertmanager路由、抑制、静默功能使用详解。
  14. Win10为什么电脑在有密码的情况下,睡眠后不用输密码打开?
  15. 软件产业未来发展的几个趋势
  16. 三种视频播放标签(video,embed,iframe)-------笔记
  17. python两个数据框合并_关于python 2.7:python2 pandas:如何将另一个数据框的一部分合并到一个数据框...
  18. Java 基础篇之面向对象
  19. 看KVM 延长器与分割器搭配如何实现画面分割效果?
  20. PYTHON-求三位数各位数字

热门文章

  1. 程序学3DMax之自动展UV
  2. 9.28上海交大PMP每日一题
  3. ios wkweb设置图片_iOS WKWebView识别H5中的图片资源
  4. 川崎机器人零点调整_FANUC机器人简易零点标定和零点位置标定
  5. ionic环境配置,生成apk
  6. cygwin 安装 swoole
  7. 恒生股票交易接口api主要作用在哪里?
  8. 医院项目-预约挂号-第五部分
  9. Source Insight配置及问题汇总
  10. MQTT订阅发布主题