位置: 编程技术 - 正文

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

  • 存货盘亏进项税额转出是什么意思
  • 餐饮发票不是增值发票吗
  • 收回的伙食费计什么科目
  • 出口业务运费可以抵扣吗
  • 存根联给了客户怎么办
  • 服装纳税税率
  • 房屋租赁个人所得税缴纳标准是多少
  • 其他综合收益不能重分类进损益的有哪些
  • 专项用途财政资金纳税调整规则
  • 客户能把货款打给个人吗
  • 房租有进项发票能抵扣吗
  • 由财政拨钱还银行借款怎么做分录?
  • 企业咨询评估
  • 出口退税退的是哪部分税
  • 没有收到发票的支出可以做成本吗
  • 公司给员工的商业保险
  • 可以选择用简易计算办法计税的是哪些
  • 加计扣除汇算清缴怎么调减
  • 其他公司代付工资怎么做
  • 公司注销后款未收完怎么办
  • 装修费用如何做分录
  • 研发费用进成本吗
  • 稿费算税
  • 旅游业差额征税怎么计算
  • 小企业短期投资的核算应设置的会计科目有
  • 给别人的返利是属于什么费用
  • 联营企业分得的利润应计入什么科目
  • 应收账款转让分录
  • 生产成本包括哪些项目
  • 跨省经营建筑企业税收政策
  • 什么是增值税差额征税政策的小规模纳税人
  • 伊吕波赛道
  • 应付福利费和应付职工薪酬的关系
  • 使用vue搭建项目
  • 债权转让抵押权一并转让,需要办理抵押变更手续
  • es6的module模块
  • 金蝶利润表主营业务成本公式
  • php判断用户名是否正确
  • 公司赎回股票
  • 微信转账和支付宝转账的区别
  • 应交税费年末有余额怎么处理
  • java timestamp localdatetime
  • 织梦使用教程
  • 房地产业具体怎么做
  • 申报方式选哪个?
  • sql翻译
  • 公司外部人员的差旅费
  • 库存商品毁损的会计分录
  • 关税完税价格计算增值税
  • 用现金购买股票分录
  • 带有折扣的增值税专用发票图片
  • 没开发票能确认没开发票能确认收入申报纳税吗?
  • 财务的材质怎么写
  • 计提工资的会计处理
  • 自来水差额征税申报表填写
  • 公司基本账户如何开户
  • 会计总监的薪资是多少
  • 仲裁是什么意思举个例子
  • rpm方式安装samba软件
  • mssecsvc是什么进程
  • mac笔记软件推荐
  • hosts文件位置在哪
  • 在Linux操作系统中哪些命令可以正确关闭系统防火墙
  • saproxy.exe - saproxy是什么进程 有什么用
  • 快速解决便秘的小妙招
  • linux拉起进程
  • shell脚本连接服务器
  • opengl绘制坐标轴
  • js绑定函数
  • Android---43---Service之IntentService
  • linux jhat
  • python怎么写爬虫
  • javascript函数如何定义及其作用
  • 江苏国税电子税务局怎么申报
  • 电子办税服务厅怎么开电子发票
  • 研发材料占研发费用比例超出50%
  • 个人所得税税前扣除是什么意思
  • 营商环境法治保障服务
  • 代理记账年费多少钱
  • 税务筹划收费标准最新
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设