位置: 编程技术 - 正文

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

  • 视同销售是指什么
  • 赠送商品如何做账
  • 增值税销项税的计税依据(销售额)包括()
  • 劳务报酬自行申报时间
  • 采购返利怎么生成发票
  • 子公司对母公司的责任
  • 有哪些税收政策类型
  • 商业保险费可以在个人所得税税前扣除吗
  • 生产质量问题报告怎么写
  • 房屋出租要交产证吗
  • 会计审计合同
  • 施工企业营改增税费有哪些
  • 国外公司进口能退税吗
  • 管理费用中的水费电费在纳税申报表A104000
  • 旅行社开具的发票是不都得写旅游服务
  • 建筑业分包抵扣
  • 车间未完工的产品属于什么
  • 月末在产品直接人工成本怎么算
  • 集团内部资金借贷制度
  • 个体户查账征收没有成本票怎么办
  • 买卖不破租赁什么情况必须搬走
  • 企业出口退税款属于征收企业所得税么
  • 其他权益性无形资产的进项税额抵扣
  • 合伙企业财产的管理和使用规定
  • 收到对方投资款怎么做会计凭证
  • 个税抵扣申报截止时间
  • 一次性开票分期确认收入如何纳税申报
  • php实现的中秋博饼游戏之掷骰子并输出结果功能详解
  • 劳务派遣发票会扣税吗
  • 金融业营业税税率
  • 不动产固定资产标识牌
  • 取得政府补助后怎么处理
  • javascript postmessage
  • 物业管理单位收取的物业费征不征收增值税
  • 适合练手的动漫人物
  • 申请高新技术企业收入要多少
  • python pymongo
  • 腾讯产品面经
  • php邮箱smtp发信源码
  • phpcms v9官网
  • python 捕捉窗口
  • 购进商品发生溢余的核算
  • 企业会计准则规定了
  • 增值税抵扣进项税额什么意思
  • 用于职工福利的进项税账务处理
  • 增值税普通发票查询真伪
  • 当月未付款算在次月吗
  • 数据库平移
  • 教育培训学校是什么意思
  • 农产品来源用途是什么
  • 企业间借款利息可以开专票吗
  • 进项税额红字
  • 物流公司的修理工资高吗
  • 现金日记账定金怎么算
  • 哪些情况下可以终止心肺复苏
  • 保理手续费计入投资收益吗
  • 递延所得税资产怎么计算
  • 收付实现制与权责发生制的例题
  • 外贸整个流程图
  • 总结sql执行进展怎么写
  • sql语句中截取字符串
  • win10预览版21277
  • unix含义
  • 计算机 win10 桌面
  • mac怎么分区硬盘分区
  • win8电脑触摸屏没反应怎么办
  • PQIMountSvc.exe是什么进程 PQIMountSvc进程查询
  • windows8触屏功能
  • win10系统下怎么安装caxa2016电子图板 caxa2016电子图板安装详细图文教程
  • win7开机屏幕狂闪不停怎么解决
  • linux计划任务如何设置
  • cocos2dx 3.3 tilemap 缩放滑动并且准确点击对象
  • cmd批处理命令文件个数
  • vue购物商城
  • js 页面加载
  • jquery教程 csdn
  • 如何保养铜香炉
  • jquery加载中
  • 济南高新区国家税务局
  • 创新税务稽查方案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设