位置: 编程技术 - 正文

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

  • 递延所得税资产和递延所得税负债
  • 印花税会计分录最新
  • 企业如何代扣代缴劳务报酬所得税
  • 财务状况说明表财务报表有什么区别
  • 预交增值税附税税率
  • 个人所得税报税孩子的夫妻双方都报吗
  • 使用权资产计入资产负债表哪个科目
  • 公允价值变动损益和投资收益区别
  • 代开运输发票是否预征企业所得税?
  • 产品入库实际成本是什么凭证
  • 周转材料计入什么账
  • 短期借款的会计凭证
  • 自产自销免税物品包括哪些
  • 子公司向母公司借款
  • 重疾险可以扣税吗
  • 金税四期再出新公告
  • 代收车船税是什么意思必须收吗
  • 银行存款缴税
  • 期望和方差的计算例题
  • 使用权资产的界定
  • 计提固定资产减值准备会计科目
  • 民办非企业单位和私营单位的区别
  • 四种存款账户的定义
  • 员工的罚款计入什么科目
  • 珠宝加工税率是多少
  • mac设置定时任务
  • linux中gedit命令
  • 王者荣耀体验皮肤什么时候结束
  • 公司账户存款
  • 辞退补偿金额怎么做账
  • 直接计入当期利润的利得和损失有哪些
  • 出口商品怎么做分录
  • php的什么函数可以判断变量是否存在
  • php产品
  • 抖音是如何成功的
  • Linux Howtos: C/C++ > Sockets Tutorial
  • CSS SandBox
  • phpcms邀请注册送积分
  • 税收收入退还书有时间限制吗
  • 上个月没扣社保 这个月一起交能报账吗
  • 蔬菜开票税率是多少
  • 母公司持有子公司70%股权
  • 入库库存商品
  • 什么叫日常业务
  • 暂估管理费用跨年账务处理
  • 生产车间计提费用会计分录
  • 长期待摊费用是摊销费用吗
  • 如果不签合同会怎么样
  • 其他应付款在借方资产负债表怎么填
  • 企业外购的软件叫什么
  • 换货与退货
  • 以银行承兑汇票支付购买原材料款
  • 市政配套费减免政策
  • 无形资产是当月计提折旧吗
  • 代办营业执照安全可靠吗
  • mysql查询表语句
  • 做好一个服务器工作
  • 系统维护的主要内容有哪些
  • ubuntu文本编辑器怎么打开
  • u盘装win8系统教程图解
  • centos 做bond
  • win10开机出现microsoft
  • Linux通过netstat命令查看80端口连接数的方法
  • linuxwho
  • css怎么画
  • linux那么多命令怎么记
  • 很不错的词语
  • python接入微信
  • jquery 插件写法
  • jQuery中的AjaxSubmit使用讲解
  • 安卓新安装包
  • 能用python做什么
  • js访问thymeleaf值
  • jquery :not
  • 浙江电子税务局网上开票
  • 打印个人住房信息查询记录需要什么资料
  • 公司缴税款可以退税吗
  • 怎么绑定办税员
  • 税务设备有什么特点
  • 江苏税务实名认证怎么更改
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设