摘要:中间件执行点有两个执行点此时定义的中间件将在控制器构造函数之后执行,但在执行任何控制器操作之前执行。控制器构造函数始终首先执行这是的行为,而不会对其进行修改。添加后缀避免冲突的一种方法是将后缀添加到中间件名称。
中间件 Middleware 内容 Contents
介绍 Introduction
中间值执行点 Middleware execution points
创建中间件 Create a middleware
分配中间值 Assign a middleware
全局中间件 Global Middleware
路由中间件 Route middleware
运行中间件 Run a middleware
中间件参数 Middleware parameters
外部中间件 External middleware
介绍 ( Introduction )将中间件视为一组层,请求必须在您的应用程序中通过才能到达资源。
例如,使用中间件,您可以验证用户是否已登录并具有足够的权限来访问应用程序的某些部分,否则将其重定向到其他位置。
实际上,中间件是控制器的扩展,因为框架的单例已经在此时构建,您可以使用该ci()函数来获取它。
中间件执行点 ( Middleware execution points )有两个执行点:
pre_controller: 此时定义的中间件将在控制器构造函数之后执行,但在执行任何控制器操作之前执行。
post_controller: 此时定义的中间件将完全在post_controllerCodeIgniter 的本机钩子上运行。
控制器构造函数始终首先执行
这是CodeIgniter的行为,而Luthier CI不会对其进行修改。
在某些时候您可能需要在中间件之前执行代码,这样做的方法是在控制器中定义一个名为的公共方法preMiddleware:
作为路由在回调中不可用
当您使用回调作为路由时,无法在中间件之前执行任意代码
创建一个中间件 ( Create a middleware )所有中间件必须保存在application/middleware文件夹中。中间件是任何带有run()公共方法的PHP类。
例:
实现 MiddlewareInterface 接口将是强制性的
从0.3.0版本开始,使用未实现LuthierMiddlewareInterface 接口的中间件类是DEPRECATED并将在下一版本中停止工作
为了在应用程序中分配中间件,必须同时使用类的名称和文件的名称。另外,请注意不要使用与框架中的其他资源相同的名称,例如控制器,模型,库等。
添加 Middleware 后缀
避免冲突的一种方法是将 Middleware后缀添加到中间件名称。
从命令行创建中间件
如果已激活Luthier CI的内置CLI工具,请使用该luthier make middleware [name] 命令创建新的中间件
分配中间件 ( Assign a middleware )您可以在应用程序的不同上下文中分配中间件:
全球中间件 ( Global middleware )要在全局上下文中定义中间件,请使用以下语法:
Route::middleware([name], [exec_point?]);name i中间件的名称在哪里, exec_point 是执行点,默认情况下是 pre_controller.
您可以使用匿名函数而不是中间件的名称:
Route::middleware(function(){ ci()->load->view("global_header"); });路由中间件 ( Route middleware )在route group上下文中,中间件是另一个属性,因此它位于方法的第三个参数中 group() :
Route::group("site", ["middleware" => ["AuthMiddleware"]], function(){ });最后,在 individual route 上下文中,中间件也是另一个属性,因此它在第二个参数中
Route::put("foo/bar","controller@method", ["middleware" => ["TestMiddleware"]]);仅在pre_controller点将
中间件分配给路由和路由组时,执行点始终为 pre_controller
运行中间件 ( Run a middleware )要从控制器运行中间件,请使用属性的run() 方法 middleware :
middleware->run("AuthMiddleware"); } }中间件参数 ( Middleware parameters )该属性的 run() 方法 middleware 支持带有中间件参数的第二个参数:
// $args can be any variable type: $args = ["foo" => "bar"]; $this->middleware->run("AuthMiddleware", $args);外部中间件 ( External middleware )只要它有一个名为的公共方法,就可以从外部类运行中间件 run()
middleware->run(new CustomMiddleware()); } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/31396.html
摘要:欢迎关于是的一个插件,增加了有趣的功能,旨在简化大型网站和的构建。它是为了尽可能地与框架集成,因此在安装后,应用程序中已存在的所有内容应该继续正常工作。在大多数情况下,安装不会超过分钟社区和支持要报告错误并提出更改,请访问上的存储库 欢迎 关于Luthier CI Luthier CI是CodeIgniter的一个插件,增加了有趣的功能,旨在简化大型网站和API的构建。 它是为了尽可能...
摘要:访问控制列表的配置与访问控制列表使用的类别和权限类别组的名称和的关联排列。 简单的认证 SimpleAuth 内容 Contents 介绍 Introduction 安装 Installation 第1步:复制所需的文件 Step 1: Copy the required files 第2步:安装数据库 Step 2: Install the database 第3步:定义...
摘要:返回表示用户的对象。相反,存储使用单向加密算法生成的哈希。例删除当前会话要从当前身份验证会话中删除所有数据包括当前存储的经过身份验证的用户,请使用静态方法用户操作有两种操作可用于对经过身份验证的用户执行角色验证和权限验证。检查密码重置请求。 Luthier CI 认证框架 ( Authentication Framework ) 内容 Contents 介绍 Introduct...
摘要:例子例子多语言网站这是一个示例,显示了由管理的多语言网站。中间件用于加载当前语言文件。 例子 Examples 例子 # 1: 多语言网站 Multi-language website 这是一个示例,显示了由URL管理的多语言网站。中间件用于加载当前语言文件。
摘要:安装内容要求安装获得启用自动加载和挂钩将与您的应用程序连接初始化要求安装获得需要通过安装。编写权限如果在创建基本文件期间出现错误,则可能是由于权限不足。确保该文件夹具有写入权限 安装 ( Installation ) 内容 ( Contents ) 要求 Requirements 安装 Installation 获得Luthier CI Get Luthier CI 启用Co...
阅读 540·2021-08-31 09:45
阅读 1647·2021-08-11 11:19
阅读 883·2019-08-30 15:55
阅读 821·2019-08-30 10:52
阅读 2845·2019-08-29 13:11
阅读 2924·2019-08-23 17:08
阅读 2832·2019-08-23 15:11
阅读 3066·2019-08-23 14:33