位置: 编程技术 - 正文

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

  • 消费税是什么意思大白话
  • 福利费的进项税额会计分录
  • 房屋用途 居住用房 住宅 区别
  • 合同不明确
  • 购销合同中印花税怎么计算
  • 企业按照行业分类为
  • 赔偿支出需要纳税调整吗
  • 代收款需要开票吗
  • 对公账户发工资1万要交税吗
  • 分公司的所得税怎么申报
  • 有限合伙企业有经营权吗
  • 应解汇款科目
  • 增值税进项税转出所得税调整吗
  • 研发费用加计扣除条件
  • 应付账款保理是什么意思
  • 契税的计税金额是什么
  • 开票金额大于收款金额如何处理
  • 购买原材料无法取得发票如何做账
  • 一般纳税人进货收到普通发票
  • 企事业单位承包承租经营者
  • 营改增后购置设备进项税抵扣怎么做?
  • 箱包类增值税发票多少点
  • 一般纳税人增值税优惠政策
  • 专利申请费用怎么做账
  • 宽带合同属于什么合同
  • 收到发票,未付款,付款的时候需要把发票复印做附件吗
  • 商贸公司进货的会计分录
  • 怎么辨别是非
  • 二手车过户员怎么样
  • 进口货物完税价格名词解释
  • 库存股股本属于什么科目,借贷方向
  • 如何在Windows 11上卸载更新
  • win11如何连接网址
  • 其他综合收益也要交税吗
  • php删除用户
  • 公司收到个人入股资金要交税吗
  • winspool.drv病毒
  • vue怎么拿到后端数据
  • 最小的电视棒是多少寸
  • 营改增后预交增值税
  • 小规模升级一般纳税人需要多久
  • 会计在账本上怎么记账
  • 个人完税证明有什么用途
  • 上传附件不成功怎么回事
  • SQL Server 使用 SET FMTONLY ON 获得表的元数据
  • 给离职员工买社保的风险
  • 减免税款借贷方表示
  • 开了的发票应该如何在丁字帐里记录?
  • 原材料的对应账户有哪些
  • 跨月的增值税专用发票怎么冲红或者是作废
  • 企业接受捐赠如何确认收入
  • 赠送礼品怎么入账
  • 物业公司转售电费增值税
  • 新政府会计下专业学什么
  • 研发使用的设备有哪些
  • 什么叫摊销
  • 公司的钱如何提出来
  • 暂估入库后发票来不了会计分录
  • 残保金不申报可以补缴吗
  • 反记账是什么
  • 什么是现金流量表分析的重点
  • mysql详细教程
  • sqlserver 临时表 准备
  • oracle linux6.9
  • CentOS 5.4 rsync+inotify配置触发式(实时)文件远程同步
  • win8光盘安装
  • linux查看命令帮助信息的方式
  • 下列有关javascript中call和apply
  • jquery实现简洁文件上传表单样式
  • cocos2dx-3.0(23) ScrollView 缩放 及 touch新用法
  • JavaScript中数组包含的属性和方法有哪
  • 信号监控设备是什么
  • 批处理函数怎么定义
  • 绑定安卓
  • 如何分析源码
  • js上传文件到后端
  • JavaScript 事件对象介绍
  • 如何证明发货前货物完好
  • 电子发票美元如何查询
  • 宁阳旧城改造名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设