位置: 编程技术 - 正文

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

  • 一般纳税人劳务公司可以开3%的发票吗
  • 所得税五个年度怎么算
  • 企业所得税的减免税额和抵免税额区别
  • 让渡资产使用权是指资产的所有者将
  • 社保年检申报错误怎么办
  • 没有社保可以缴费吗
  • 以旧换新帐务处理
  • 代采账务处理
  • 厂房怎么计提折旧费
  • 接受非货币性资产捐赠以其什么确认捐赠额
  • 外购产品对外捐赠的会计处理
  • 独立核算的生产车间是法律主体吗
  • 上月应交税金
  • 生产成本里面的工会经费
  • 发票有误多交的钱怎么办
  • 制造型企业采购
  • 开票金额小于付款金额,怎么办理
  • 企业取得的哪些成果
  • 免税增值税发票怎么做账
  • 固定资产清理账户期末有余额吗
  • 报销抵扣联和发票联都需要吗
  • 个体工商户比如
  • 办理银行承兑汇票贴现的会计分录
  • Mac系统怎么设置ftp
  • 推荐几个优秀的电影
  • 餐饮企业原材料的核算,新城饭店为增值税一般纳税人
  • 事业单位非税收入怎么做账
  • 使用php进行mysql数据库编程的基本步骤
  • 退税到账怎么做账
  • 不合格原材料
  • 车船使用税凭证还要过户吗怎么办
  • php设计思路
  • 外地企业预缴税款流程
  • 秘鲁亚马逊木业有限公司招聘
  • 跨平台桌面程序
  • 商品房契税申报是增量房申报吗
  • 投资收益怎么做不影响利润
  • php上传文件到指定目录
  • 应付职工薪酬年末结转到哪个科目
  • 皮丘拉湖畔的乌代布尔城市宫殿,印度 (© Chaiyun Damkaew/Getty Images)
  • 怎么查商品的税率
  • js获取各种屏幕信息
  • 发票未报销可以退税吗
  • 测绘费 土地增值税
  • 房租没开票算不算漏税
  • 增值税减免税申报表
  • 固定资产清理的金额怎么算
  • 建筑劳务公司工作内容
  • 科技专项资金单独核算原则
  • 不含税劳务报酬7000
  • 公司卖土地怎么避税
  • 收到固定资产怎么做账
  • 前一年的未分配利润计算
  • 公司三证合一是指哪三证
  • SQLServer Execpt和not in 性能区别
  • MySQL 5.7 mysql command line client 使用命令详解
  • 快速切换电脑界面
  • cmd命令怎么进入d盘文件夹
  • broadcom网卡配置
  • centos怎么备份
  • office解压后如何安装
  • windows 8升级
  • ccxprocess是什么程序
  • linux awk nr
  • linux文件复制到windows
  • qt_5 not found
  • Android之Android apk动态加载机制的研究(二):资源加载和activity生命周期管理
  • 命令以管理员运行
  • vue $route $router
  • 数据结构 二叉树什么是孩子数
  • python容错
  • 统计重复出现的次数
  • python 解析算法
  • android开发遇到的技术难点
  • 税务局试用期
  • 环保税征收标准可以改吗
  • 财税老师刘杨年龄
  • 企业所得税一年算几次
  • 2021河南税务政策
  • 依法征拆
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设