位置: 编程技术 - 正文

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

  • 单位的车辆车船税怎么交
  • 携程代订住宿发票能作为差旅费报销吗
  • 结转销售成本的分录
  • 当年亏损额为什么不能填?
  • 发票领购簿长什么样
  • 个人名字的发票专用章
  • 政府补助需要交哪些税
  • 培训产生的费用
  • 企业所得税为什么那么高
  • 2019年大写二o一九
  • 预付账款收不回发票怎么核销
  • 煤炭企业在建工程核算探讨
  • 房产折旧计算方法 举例
  • 出售专利权收入属于什么收入
  • 高新企业职工教育经费扣除比例
  • 当月开的发票次月预缴税款行得通吗?
  • 未认证的进项也就是库存
  • 实收资本不到账如何做凭证
  • 厂房转让企业所得税计算方法
  • 免征增值税企业所得税纳税调整
  • 固定资产进项税额转出怎么做账务处理
  • 增值税季度报税
  • 外地出差的餐费住宿费是不是都计入差旅费
  • 合并报表怎么抵损益
  • 小微企业增值税最新优惠政策
  • 企业的其他业务收入
  • 消费税如何避税计算
  • window10拖动窗口的手势
  • win11怎么压缩图片画质
  • 王者荣耀中甄姬的cp是谁
  • 总公司以固定资产出资入股,固定资产是不是新公司的
  • 如何阻止win10升级到win11
  • debian10.9安装教程
  • php扩展编写
  • 发票明细与实际不符是什么行为
  • 房产证和不动产权证都要办理吗
  • 劳务费支出计入什么科目?
  • vue ui怎么用
  • framework3.5怎么打开
  • 长期借款利息调整会计分录
  • 销售自己使用过的固定资产
  • framework在哪里打开
  • PyTorch深度学习实战 | 神经网络的优化难题
  • php实现页面静态化
  • 所得税费用科目的贷方登记
  • 行政事业单位慰问外单位
  • 建筑业预缴增值税计算公式
  • 事业单位财政拨款收入会计分录
  • 银行托管账户的规定有哪些
  • 合同金额含税么
  • 计入资本公积的固定资产转出
  • 捐赠固定资产怎么入账
  • 设备安装业绩
  • 报销费用余额退回
  • 赔偿金是营业外收入吗
  • 选择税的计算方法
  • 外贸企业退税政策
  • 转回小规模
  • 企业备用金怎么做账
  • 多少金额以上算固定资产
  • 商品流通企业有哪些企业
  • 出现错误,请联系客服
  • win10系统怎么设置ip地址
  • win8.1输入法打不了中文
  • Linux下SSH Session复制功能实现方法
  • win7防火墙打不开错误代码6801
  • android:View的setTag和getTag使用
  • bash 数值比较
  • 学习雷锋好榜样
  • node网络爬虫
  • 同一个页面
  • unity manifest
  • unity3d shader之God Ray上帝之光
  • javascript test
  • javascript基础
  • 工信部新车申报目彿
  • 电子税务局开的发票怎么作废
  • 物业管理用房如何缴纳房产税
  • 简易计税项目能即开简易税率发票又开适用税率发票吗
  • 广州代理记账公司地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设