资讯专栏INFORMATION COLUMN

CodeIgniter用hook钩子实现Interceptor拦截器功能

Jaden / 2535人阅读

摘要:今天用框架的钩子实现一个例子,在每一次请求后,在返回报文中的头部中添加设置跨域访问的属性。也就是在每一次处理请求后执行。创建自定义钩子文件在中新增文件说明此方案方便低耦合无需要修改及可以随时启用或变更

今天用ci框架的钩子实现一个例子,在每一次http请求后,在返回报文中的头部header中添加设置跨域访问的属性。

1.启用钩子

钩子特性可以在 application/config/config.php 文件中全局的启用或禁用, 设置下面这个参数:

$config["enable_hooks"] = TRUE;

2.定义钩子

钩子是在 application/config/hooks.php 文件中被定义的,每个钩子可以定义 为下面这样的数组格式:

 "hook_resp",
    "filename"=> "resp.php",
    "filepath" => "hooks",
    "params" => array(),
);

post_controller 在你的控制器完全运行结束时执行。也就是controller在每一次处理http请求后执行。

function 你希望调用的方法或函数的名称。

filename 包含你的类或函数的文件名。

filepath 包含你的脚本文件的目录名。 注意: 你的脚本必须放在

application/ 目录里面,所以 filepath 是相对 application/ 目录的路径,举例来说,如果你的脚本位于
application/hooks/ ,那么 filepath 可以简单的设置为 "hooks" ,如果你的脚本位于

application/hooks/utilities/ , 那么 filepath 可以设置为 "hooks/utilities"
,路径后面不用加斜线。

params 你希望传递给你脚本的任何参数,可选。

3.创建自定义钩子文件

在system/application/hooks中新增文件resp.php

output->set_header("Access-Control-Allow-Origin: * ");
    header("Access-Control-Allow-Origin: * ");
}

说明:此方案方便,低耦合,无需要修改controller 及method.
可以随时启用或变更

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/22767.html

相关文章

  • Webpack源码阅读之Tapable

    摘要:源码分析安装好包,根据上述方法,我们运行如下命令初始化在构造函数处打上断点,可以看到继承自,上面定义了一个函数。因为函数定义在原型上,并通过在构造函数中赋值。 Webpack源码阅读之Tapable webpack采用Tapable来进行流程控制,在这套体系上,内部近百个插件有条不紊,还能支持外部开发自定义插件来扩展功能,所以在阅读webpack源码前先了解Tapable的机制是很有必...

    yanwei 评论0 收藏0
  • SpringMVC之源码分析--HandlerMapping(五)

    摘要:概述通过前三章的分析,我们简要分析了和,但对拦截器部分做详细的分析,拦截器的加载和初始化是三个相同的部分。 概述 通过前三章的分析,我们简要分析了SimpleUrlHandlerMapping、BeanNameUrlHandlerMapping和RequestMappingHandlerMapping,但对拦截器部分做详细的分析,拦截器的加载和初始化是三个HandlerMapping相...

    nanchen2251 评论0 收藏0
  • Codeigniter 4.0-dev 版源码学习笔记之三——核心文件 Codeigniter.ph

    摘要:行,是否强制访问。行,尝试处理此次请求,详细见方法。至此,的执行主流程完毕。小结是的核心文件,它被调用后,完成了诸多的主流程操作。此文可以转载,但转载前需要发邮件到进行沟通,未沟通的均视作侵权。 前言 Codeigniter.php 是 CI 4 的核心所在,在这里接收并处理了 request 请求,安全检查,缓存处理, URL 解析以及路由匹配,执行过滤器,加载运行 Controll...

    alighters 评论0 收藏0
  • webpack系列-插件机制杂记

    摘要:系列文章系列第一篇基础杂记系列第二篇插件机制杂记系列第三篇流程杂记前言本身并不难,他所完成的各种复杂炫酷的功能都依赖于他的插件机制。的插件机制依赖于一个核心的库,。是什么是一个类似于的的库主要是控制钩子函数的发布与订阅。 系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 webpack本身并不难,他所完成...

    Neilyo 评论0 收藏0
  • 微信小程序开发必备神器-Grace

    摘要:一个精巧易用的微信小程序开发辅助库特点轻量小巧上手简单支持和一样优雅的数据响应式支持数据自动更新更改缓存批量更新强大的网络功能支持全局事件总线支持跨页面传值支持示例工程在源码目录下用微信小程序开发工具打开即可。 Grace 一个精巧、易用的微信小程序开发辅助库 Github: https://github.com/wendux/grace 特点 轻量、小巧、上手简单 支持和Vue一样...

    aikin 评论0 收藏0

发表评论

0条评论

Jaden

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<