位置: 编程技术 - 正文

浅谈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对称加密算法实验报告)

  • 私车公用车险是个人名字可报销吗
  • 个体工商户还没有使用怎么注销
  • 个人收到拆迁补偿款缴税吗
  • 代开专票上的税额比电子缴款凭证上的税额少怎么调整
  • 公款私存个人账户怎么处理
  • 职工福利费允许结转以后年度扣除吗
  • 2020年企业减免
  • 一般纳税人外地预缴增值税税率
  • 发票超过认证期限可以红冲重开吗
  • 长期挂账的应付账款如何写申请报告
  • 房地产开发企业资质等级有几个
  • 固定资产减值必有损益吗
  • 固定资产成本包括包装费吗
  • 向境外支付特许权使用费免征增值税
  • 增值税普通电子发票可以抵税吗
  • 计提工资当月要结转吗?
  • 预收账款在什么科目核算
  • 住房租赁补贴
  • 对外支付增值税扣缴义务发生时间
  • 新注册的公司什么时候可以开票纳税
  • 发票红冲退税是全额退吗
  • 开出增值税发票没收到怎么抵扣进项税?
  • 辅导期一般纳税人预缴增值税
  • 住房公积金是福利费吗
  • 资本化利息金额
  • 低价销售存货的企业所得税怎么算
  • 某市财政收到林业基金收入分录
  • 企业贷款的利息都是固定的吗
  • 暂估金额与发票金额的区别
  • 已抵扣的固定资产进项税转出如何处理
  • 销售方的现金折扣怎么处理
  • php面向对象详解
  • win11怎么添加字体到个性化
  • 文件pages
  • retrorun.exe - retrorun有什么用 是什么进程
  • 上月发票这月冲红,对这月有影响吗
  • 股份支付费用是股权激励成本吗?
  • 职工报工伤后用人单位还有赔偿吗
  • idea打开vue文件
  • 计提坏账准备和转销坏账准备
  • 会计学中借和贷怎么区分
  • 报销差旅费凭证怎么做
  • php批量删除文件
  • php读取php文件内容
  • nodejs 下载
  • linux mail命令详解
  • 03-JavaScript基础
  • 金税盘无法登录410506怎么解决
  • 收款收据可以盖业务章吗
  • 帝国cms真的很好用
  • SQL Sever2008r2 数据库服务各种无法启动问题的解决办法(详解)
  • 公司一年的账目怎样算
  • 下列项目的进项税额可以从销项税额中抵扣的是()
  • 2021新旧会计准则
  • 报销电话费计入什么科目
  • 端午节发放的现金福利会计处理
  • 公司购车按揭利率是多少
  • 国税地税发票样式区别
  • 未认证的进项税额转出会计分录
  • 固定资产折旧四种方法的优缺点
  • 专家评审费需要上税吗
  • 旅行社的代订机票产品能报销吗
  • 工业企业预提费用怎么算
  • sql语句实例大全
  • 深度Win7 64位系统默认输入法图标如何个性化设置
  • centos用途
  • windows7开始菜单不见了
  • msoobe.exe是什么
  • win7开始菜单中的程序图标修改了
  • win8如何设置
  • elementtree修改节点属性
  • javascript数学
  • nodejs test
  • centos6.7安装问题
  • unity破解安装教程
  • javascript对象的常用方法
  • 出口发票与报关单名称不一致影响退税吗
  • 成都市老年公交卡年审地点
  • 报纸的增值税税率
  • 财税专业全称叫什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设