位置: 编程技术 - 正文

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

  • 外轮供应公司远洋运输供应公司的退税申报?
  • 如何成为一般纳税人的条件
  • 工业企业取得土地收益
  • 建筑发票开具与土增税扣有什么关系?
  • 本年计算扣除限额的基数怎么算
  • 商品类别发票能抵扣吗
  • 国内支付业务收入怎么算
  • 冲销以前年度营业外支出
  • 进口环节增值税是中央税还是地方税
  • 销售商品开具商品单据
  • 企业网银短信提醒费用
  • 总公司购固定资产分摊每家店面怎么来做账
  • 学校发票抬头类型填企业还是非企业
  • 国家税务总局11号令
  • 版权使用费属于什么税目
  • 增值税减免税申报明细表免税代码和名称
  • 企业成本费用包含
  • 购买厂房可以一次买卖吗
  • 计提生产设备折旧费计入什么科目
  • 开办费 工资
  • 财务红冲是什么意思
  • 先开票后发货怎么操作
  • mac os右键
  • linux 定时删除文件
  • 苹果官网
  • PHP:oci_free_descriptor()的用法_Oracle函数
  • 出口企业免抵退不得抵扣进项
  • 公司购买货物
  • 木星应该涂什么颜色
  • 销售货物收到普票会计分录
  • chatGPT背后的真正逻辑
  • thinkphp教程
  • php记录页面停留多久
  • Css中的color属性用于设置html元素的背景颜色
  • 前端已死?金三银四?你收到offer了吗?
  • PyTorch深度学习实战 | 神经网络的优化难题
  • php注册和登录界面
  • php用mysql连接数据库并查询
  • 民办幼儿园需要什么资质
  • ps抠图怎样
  • python frames
  • 出口免税免的是哪部分的税
  • 中介代缴社保费用多少
  • 流动资产损失计入营业外支出吗
  • 只有进项税需要结转吗
  • 出库成本会计分录
  • 全年一次性奖金税率表2023最新
  • 加油卡充值可以开增值税专用发票吗
  • 预收账款是负债还是资产
  • 主营业务成本的增加在哪一方
  • 不征收耕地占用税的是
  • 融资租入固定资产改建支出计入
  • 维护费抵减增值税会计科目
  • 总公司给分公司拨款属于什么
  • 从国外进口一批原材料,海关核定的关税完税价
  • 发票有什么重要性
  • 坏账准备具有什么功能
  • 电汇凭证是什么会计科目
  • 公务机票保险费能报销吗
  • 政府奖励我公司的钱
  • window8开机
  • win10预览版21277
  • win7如何创建文件夹
  • WIN10开启高性能模式
  • ubuntu系统安装谷歌浏览器
  • Linux系统用命令进行盘数据往外读不可
  • ios macos
  • Win10装不上是什么原因
  • win7系统怎么查看隐藏文件夹
  • 只用html和css
  • JavaScript数据类的特点
  • jquery获取当前地址
  • Python Requests安装与简单运用
  • python语言及应用
  • 营改增之前建筑业税率是多少
  • 上海个体户纳税标准
  • 电子税务局打印发票提示本机未检测到
  • 北京市国家税务网
  • 轮胎消费税的征收环节
  • 社保交五百多
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设