PHP-Php钩子的问题
使用php实现插件的机制。
网上大部分说要使用钩子来实现。
可是看钩子的实现的时候发现一点问题,
想使用一个钩子必须先埋下去一个钩子,然后再调用。
我疑惑了,那我直接调用来的多方便,为什么前面还要埋一个呢?
有人能给我解释下吗
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
使用php实现插件的机制。
网上大部分说要使用钩子来实现。
可是看钩子的实现的时候发现一点问题,
想使用一个钩子必须先埋下去一个钩子,然后再调用。
我疑惑了,那我直接调用来的多方便,为什么前面还要埋一个呢?
有人能给我解释下吗
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
举个例子,处理一个HTTP请求的时候会经过很多步骤:
解析HTTP请求
调用对应的处理方法
返回结果
有时候在这些步骤之间、之内,我们可能想执行其他操作,这些操作可能不会影响整个流程,例如在解析之前把请求记录到日志,也可能影响后续的步骤,例如检查用户权限。简单来说,我们在主要的步骤之内、之间要执行很多很多操作。
钩子的做法,就是系统定义了很多固定的扩展点(例如解析请求前、解析请求后),系统在执行到这些扩展点的时候,去调用你埋下的钩子。你可以主要流程之外的其他地方,添加扩展行为,完全不用修改主要流程的代码。
直接调用,其实也就是直接修改主要流程的代码,可以在任意的地方插入函数调用,这种做法其实要比钩子强悍的多,但可维护性就没钩子那么好。
为了解藕,最大化代码的灵活性和扩展性,否则都写死了,一旦业务逻辑变更会使维护、扩展变得 困难而且容易出错