位置: 编程技术 - 正文

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

发布时间:2023-12-16

推荐整理分享浅谈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对称加密算法实验报告)

  • 企业名称税号
  • 混合销售行为的基本特征不包括
  • 应纳税暂时性差异是调增还是调减
  • 用于员工福利的会计分录
  • 公司向个人借款不还如何处理
  • 小微企业减免增值税申报表填写
  • 银行开户手续费怎么开发票
  • 企业实缴不到位怎么办
  • 为职工提供免费午餐
  • 企业资产永久或实质性损害如何进行所得税处理
  • 租入厂房改建折旧年限
  • 现金折扣冲减销售收入冲销项税吗
  • 专项科研经费
  • 应付职工薪酬账务处理例题
  • 委托贷款利息收入账务处理
  • 别人的项目挂靠我公司怎么做账?
  • 机器设备的拆除方法
  • 小规模纳税人不用交增值税吗
  • 合伙人投入的资金怎么记账
  • 我的初级备考经验------极限挑战,超越自我
  • 小规模付增值税怎么做账
  • 资产总额从业人数
  • 娱乐行业缴税
  • 不动产进项税为什么不能抵扣
  • 工程承包款要交多少税
  • 软件和硬件的成本按销售占比做分摊怎么算
  • acs_log是什么文件
  • 固定资产的财务处理方法
  • deepin 文件管理器
  • 代理公司变更地址多少钱
  • windows 11预览版
  • 采购涉及哪些部门
  • php b/s
  • 增值税进项如何取得更多
  • 分配结转本月发出材料成本会计分录
  • 房地产开发企业增值税怎么算
  • 火车票抵扣进项税怎么申报填写
  • 锡特f8
  • 发票复核和收款人未填写
  • 工具合集
  • 【AI大比拼】文心一言 VS ChatGPT-4
  • 酒店押金的账务处理
  • 离职员工的个税忘记申报了补申报会被处罚吗
  • 增值税的征收范围包括销售不动产
  • 营改增后发票管理办法
  • 非流动资产基金属于什么科目
  • 个税申报错了并撤销
  • 什么叫利得
  • 销售成本转结分录
  • 企业工会经费的会计分录
  • 金税盘锁死341101
  • 取得抵债资产
  • 以股权入资该怎么办
  • 公司年底奖金怎么计算
  • 从农民个人手里取出钱
  • 建设工程项目设计阶段的投资控制方法有哪些
  • 预算收入包括增值税吗
  • 员工异地工作
  • 企业缴纳社保要下载什么软件
  • 未认证的发票如何进项税转出
  • 银行存款日记账与银行对账单之间的核对属于
  • 旅游公司怎么交增值税
  • sqlserver中delete、update中使用表别名和oracle的区别
  • ghost还原文件
  • thinkpad x230笔记本电脑
  • 苹果mac怎么连接显示器
  • 华硕电脑升级win11
  • ,linux
  • win7怎么调图片大小
  • win10系统怎么卸载ie浏览器
  • xcode a build only device
  • easyui datagrid resize
  • perl运行环境
  • javascript运用
  • JavaScript 和 Java 的区别浅析
  • 异步加载场景
  • 宁夏回族自治区房产税
  • 合肥报税网站
  • 山东省合格考密码
  • ca认证登录不了
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号