位置: 编程技术 - 正文

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

  • 偶然所得个人所得税会计分录
  • 固定资产的确认条件包括
  • 用友软件80端口被占用解决方法
  • 工会经费支付福利方案
  • 国际货运代理可以开免税吗
  • 固定资产改造超过原值多少需要转固
  • 收到以前年度的货款分录
  • 企业预算管理为何要以企业战略,核心竞争力,风险为导向
  • 增值税税率如何计算
  • 缴纳土地出让金后多久能拿到土地证
  • 会计学中管理费用属于什么
  • 不带息票据贴现计算公式
  • 出售股份的印花税怎么做分录?
  • 收到赞助费如何做分录
  • 借款可以转注资款吗
  • 产品成本核算的一般程序
  • 2018年车船税收费标准
  • 税务迁移会影响外经证核销吗
  • 为什么收到的劳务费税点打星号?
  • 营改增试点实施办法的法律层次是
  • 财务报表季度申报资产负债表怎么填
  • 物业公司营改增后收入的确认
  • 垫付的工程款可以起诉要回吗
  • 什么情况下要交消费税
  • 所得税费用什么时候结转
  • 其他应收款注销时处理
  • 如何在电脑上玩三国杀移动版
  • 公司代扣代缴的保险费有哪些
  • 预付加油卡发票可以报销吗
  • 税前净利润等于什么
  • 哪些进项税可以加计抵减
  • 企业类型主要有
  • Linux怎么使用Windows的软件
  • 生产企业出口退税的计算方法
  • 财务人员如何审核合同
  • 备抵法是什么科目
  • 关于扩展检索,下列说法正确的是
  • 微信小程序实现支付功能
  • cookies方法
  • 又拍云使用教程
  • segment anything model模型 需要的配置
  • 文本超出单元格
  • vue中的icon
  • 端午节发现金怎么说
  • 股票收入需要交税
  • 个人独资公司和合伙公司有什么区别
  • 购买的商品作为赠品怎么入账
  • 农民工工资专用账户
  • 收入的确认规则
  • 发票记账联可以给客户吗
  • phpcms二次开发教程
  • 混合销售行为的例子
  • sqlserver、mysql获取连接字符串步骤
  • 资本公积的用途有哪些
  • 个人所得税的征收模式为()A
  • 筹建期间的开办费属于资产吗
  • 残保金需要计提吗怎样做分录
  • 购入汽车当月需要计提折旧吗
  • sql server查询
  • use crt secure
  • igfxsrvc module
  • Windows XP用户账户控制
  • Mac应用程序的格式
  • win10如何打开defender
  • 怎么检测端口通不通
  • 人走鸟不惊,出自于谁的诗句?
  • 安卓自定义app
  • shell脚本循环复制文件
  • 批处理怎么学
  • vue怎样使用
  • python 很简单
  • 你知道的,是我的兄弟 我要把天赋
  • 安卓9api
  • python flask框架 web服务器
  • 保险理赔款如何分配
  • 国家税务总局23号文件
  • 2021医保交费截止
  • 政府收回土地条件
  • 出口退税已提交数据撤回
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设