位置: 编程技术 - 正文

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

  • 三代税款手续费退费申请
  • 销项税额期末余额
  • 房产税的计算方法举例说明
  • 税务师入会与不入会冲突
  • 职工产假津贴怎么领取
  • 什么是增值税征免年限
  • 企业销售折扣折让会计分录
  • 公司会计日常工作内容
  • 财务往来账对账制度
  • 增值税三级明细科目包括
  • 财务软件无形资产摊销几年
  • 民营企业月末要报哪些税
  • 商业发票和形式发票英文
  • 进口设备在海关处保存2年出售时 计算税怎么算
  • 商业收入会计分录
  • 白条入账的会计分录
  • 什么是差额增收
  • 持有至到期投资核算内容
  • 体检发票开公司还是个人
  • 环境保护税法什么时候出台
  • 福利费的进项税额转出
  • 顾问费的个税怎么扣
  • 小规模纳税人废品站卖废品发票开什么项目
  • 酒店招募
  • 固定资产采用历史成本计价
  • 会议费 报销
  • 地下人防设置要求
  • 个体工商户的公章丢了怎么办
  • 结转本月各项损益
  • 主营业务收到的现金
  • 进货折扣适用于什么条件
  • 免征的增值税需要纳税调整吗
  • 苹果手机最新款2023新上市
  • PHP:Memcached::replaceByKey()的用法_Memcached类
  • 冲往年管理费用的账务处理是否涉及所得税
  • window显示我的电脑
  • 支付押金无法付款
  • 进货退回的会计处理
  • 带壳的栗子 (© Kai Keisuke/Shutterstock)
  • 银行本票出票金额大于账户余额
  • 社保缴费基数如何调整
  • php连接数据库实现登录注册
  • yolov5标签格式
  • 分配股利账务处理
  • 动静结合会计等式的不会重复算利润吗
  • Vue3中的pinia使用(收藏版)
  • 税控设备抵减增值税必须当月抵减吗
  • 年末结转利润分配各明细账户
  • 减按10的税率征收个人所得税
  • 什么是企业的应付账款
  • 进项税额转出最后怎么处理
  • webservice api接口
  • 房地产企业实际发生的税金及附加
  • 银行承兑个人可以用吗
  • 开具红字发票抵扣后如何退税?
  • 固定资产开普票还是专票
  • 企业进项构成比例
  • 应付职工薪酬如何进行会计处理
  • 银行存款付款是借方还是贷方
  • 工程行业收到工程发票
  • mysql alter table命令修改表结构实例
  • zhp.exe是什么进程
  • linux系统文件压缩命令
  • centos fedora
  • winpe怎么弄
  • Linux如何使用命令
  • Extjs4中Form的使用之本地hiddenfield
  • 批处理中的感叹号
  • python中文分词代码
  • django分层
  • 安卓api中文手册
  • 深入理解python特性 pdf
  • 安卓手机管家推荐
  • java模拟支付功能
  • 湖南电子税务局app
  • 国内免费机场
  • 国家税务总局局官网
  • 兼营增值税应税项目和免税项目
  • 新公司印花税的缴纳
  • 残疾人个体工商户补贴
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设