位置: 编程技术 - 正文

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

  • 制造业做贸易出口可以退税吗
  • 商业保险进项税额转出影响成本吗
  • 计提附加税的金额怎么算
  • 进口货物的完税价格不包括
  • 劳保用品销售
  • 离职员工个税申报时员工状态依然是雇员
  • 游戏公司收入确认方法
  • 软件平台服务公司的营业执照经营范围怎么写
  • 税控系统的清单
  • 税控盘和税控钥匙一样吗
  • 兼职人员怎么申报工资
  • 天猫收取的佣金开具的技术服务发票会计分录
  • 已申报未导入是申报成功了吗
  • 公司采购报销没发票
  • 金融企业税务稽查案例分析
  • 合并报表时存货怎么处理
  • 拆迁车间
  • 商贸公司账目
  • 物业公司收到开发代付物业管理费怎么做账
  • 旅行社代订机票怎么做账
  • 工业企业水电费如何分摊
  • 无形资产摊销金额计入什么科目
  • 建筑企业收到的商品怎么入账呢
  • 广告业增值税税率6%是多少
  • 长期待摊费用涉税风险应对
  • 小规模纳税人增值税优惠政策2023
  • 增值税专用发票几个点
  • 我的初级备考经验怎么写
  • 派发现金红利怎么知道有没有
  • 企业所得税是怎么来的?
  • 软件外包付款流程
  • 预存电费余额是什么意思
  • 工程发票开具所需资料有什么?
  • 苹果系统如何访问相册
  • 收据能入账当凭证吗
  • 怎么打开win11的控制面板
  • 以太网没有internet
  • 商品流通会计科目
  • 企业为职工代扣代缴的个人所得税计入什么科目
  • 债券溢折价是什么意思
  • php获取数据库中的数据,输出到div中
  • php 封装
  • 蓝桥杯真题c语言
  • 留抵税额是认证过的发票吗
  • dnf指令键&怎么设置
  • thinkphp官网
  • 进项发票抵扣税率
  • 简易征收销售额是什么意思
  • 应纳税所得额可以是负数吗
  • 法定盈余公积的作用
  • 当月进项发票忘认证又开了销项税额怎么办
  • 合同资产和合同负债的区别
  • 月初包括哪几天
  • 低值易耗品摊销表格
  • 困难补助属于兜底政策吗
  • 记账凭证模板
  • 企业失信是什么意思
  • windows10怎样安装
  • Win10预览版怎么变回正式版
  • fedora常用命令
  • windows防火墙无法更改某些设置错误代码0×80070422
  • windows 8.1更新
  • realpopup.exe - realpopup是什么进程
  • win10系统光驱
  • win8怎么系统重装系统
  • win8怎么更改密码
  • 全志科技在国内芯片界地位
  • 金庸笔下十大最受欢迎人物
  • android事件分发流程图
  • 简述linux与windows相比,有哪些优势
  • python flask快速入门与进阶
  • jQuery插件ajaxFileUpload异步上传文件
  • javascript要怎么学
  • 浙江市税务局怎么进
  • 贸易公司的税率多少
  • 填了专项附加扣除但没有进行综合年度汇算
  • 全资子公司和全资子企业的区别
  • 企业所得税国家和地方分配比例
  • 国税局黑龙江省
  • 个人所得税扣缴手续费退付是什么意思
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设