位置: 编程技术 - 正文

浅谈PHP中如何实现Hook机制(php实验步骤)

编辑:rootadmin

推荐整理分享浅谈PHP中如何实现Hook机制(php实验步骤),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php操作步骤,php运用,php实战,php如何实现,php实战,浅谈php中如何实现数据,php如何实现,浅谈php中如何实现数据,内容如对您有帮助,希望把文章链接给更多的朋友!

对"钩子"这个概念其实不熟悉,最近看到一个php框架中用到这种机制来扩展项目,所以大概来了解下。

所谓Hook机制,是从Windows编程中流行开的一种技术。其主要思想是提前在可能增加功能的地方埋好(预设)一个钩子,这个钩子并没有实际的意义,当我们需要重新修改或者增加这个地方的逻辑的时候,把扩展的类或者方法挂载到这个点即可。

hook插件机制的基本思想:

在项目代码中,你认为要扩展(暂时不扩展)的地方放置一个钩子函数,等需要扩展的时候,把需要实现的类和函数挂载到这个钩子上,就可以实现扩展了。

思想就是这样听起来比较笼统,看一个网上的实现的例子。

整个插件机制包含三个部分:

1.hook插件经理类:这个是核心文件,是一个应用程序全局Global对象。它主要有三个职责

浅谈PHP中如何实现Hook机制(php实验步骤)

1>监听已经注册了的所有插件,并实例化这些插件对象。

2>注册所有插件。

3>当钩子条件满足时,触发对应的对象方法。

2.插件的功能实现:这大多由第三方开发人员完成,但需要遵循我们(经理类定义)的规则,这个规则是插件机制所规定的,因插件机制的不同而不同。

3.插件的触发:也就是钩子的触发条件。这是一小段代码,放置在你需要调用插件的地方,用于触发这个钩子。

----------------------------------看一看别人实现的方案--------------------------------

首先是插件经理类PluginManager,这个类要放在全局引用里面,在所有需要用到插件的地方,优先加载。

接下来是一个简单插件的实现DEMO_actions。这是一个简单的Hello World插件,用于输出一句话。在实际情况中,say_hello可能包括对数据库的操作,或者是其他一些特定的逻辑。

再接下来就是插件的调用触发的地方,比如我要将say_hello放到我博客首页Index.php, 那么你在index.php中的某个位置写下:

第一个参数表示钩子的名字,第二个参数是插件对应方法的入口参数,由于这个例子中没有输入参数,所以为空。

这样一个例子基本上很明确的表达了"钩子"插件机制的实现方式和逻辑。

标签: php实验步骤

本文链接地址:https://www.jiuchutong.com/biancheng/275756.html 转载请保留说明!

上一篇:三个思路解决laravel上传文件报错:413 Request Entity Too Large问题(解决思路怎么写)

下一篇:PHP对称加密算法(DES/AES)类的实现代码(php对称加密算法实验报告)

  • 企业所得税汇算清缴补缴税款分录
  • 物流公司车子
  • 发票遗失如何入账
  • 增值税是如何计提的
  • 回退税款所属期具体条件是
  • 应付职工薪酬期末余额在借方表示什么
  • 代扣代缴个人所得税手续费是否缴纳增值税
  • 房地产预交税金及附加要计提吗
  • 劳务建筑公司一年可以赚多少
  • 计提工资多计提,如何做冲销
  • 事业单位转账支票管理
  • 集资建房减免那些配套资金
  • 小规模可以不报增值税吗
  • 工厂电线
  • mac辅助功能键盘
  • 在win7系统中文件属性有哪些
  • 虚拟机安装apache
  • php ftp上传文件
  • 失业保险稳岗补贴是什么意思
  • 销售已使用过的小汽车增值税
  • 工程竣工结算和决算的区别
  • php最好的教程
  • 橡皮树怎么养护
  • 国家差旅费报销最新标准住宿
  • laravel 5异常错误:FatalErrorException in Handler.php line 38的解决
  • 云霞下的麦田
  • php pdo oracle
  • 会计准则新规
  • 适合练手的动漫人物
  • vue项目使用rem
  • tomcat服务器在哪个位置
  • php代理访问
  • wordpress整站备份
  • c语言中fopen函数的头文件
  • 用友t3财务报表导出
  • python字典按要求
  • 职工福利费的作用
  • mysql5.6允许远程连接
  • php的默认网站目录是
  • 生产企业出口自产应税消费品实行什么方法
  • 一般纳税人的税负率是多少
  • 电子汇票提示付款申请
  • 小企业会计准则2023电子版
  • 应付职工薪酬科目余额表怎么看
  • 小规模企业现金流量表
  • 小规模纳税人减按1%如何填报申报表
  • 无法收回的款项怎么记账
  • 融资租赁财产保全金额是多少
  • 坏账准备的余额百分比法
  • 营改增后建筑业税率变化情况
  • 生育津贴案件
  • 预收账款为什么不是货币性项目
  • mysql批量更新多条数据
  • windows预览版
  • windows10x预览版
  • macbook移到废纸篓
  • linux命令find用法
  • qdcsfs.exe - qdcsfs是什么进程 有何作用
  • win8系统怎么样
  • win7系统运行怎么打开
  • 如何汉化一个软件
  • 如何将windows 10
  • linux内核怎么使用
  • android app 源码
  • 常见错误类型
  • shader cull
  • Linux shell实现HTTP服务示例代码
  • python网络编程视频教程
  • jquery对动态生成的进行操作
  • unity update优化
  • 怎么利用python爬虫爬数据
  • unity cpu优化
  • nodejs+ts
  • 河南省发票查询真伪
  • 民间非营利组织包括哪些单位
  • 购车发票购置税是否包含在内
  • 空置房物业收费标准
  • 厦门市地方税务局市稽查局关于规范稽查有关规定
  • 不能抵扣消费税口诀
  • 90平房子税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设