PHP-Php钩子的问题

发布于 2017-01-19 07:13:43 字数 145 浏览 1309 评论 2

使用php实现插件的机制。
网上大部分说要使用钩子来实现。
可是看钩子的实现的时候发现一点问题,
想使用一个钩子必须先埋下去一个钩子,然后再调用。
我疑惑了,那我直接调用来的多方便,为什么前面还要埋一个呢?
有人能给我解释下吗

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-05-31 12:35:19

举个例子,处理一个HTTP请求的时候会经过很多步骤:

解析HTTP请求
调用对应的处理方法
返回结果

有时候在这些步骤之间、之内,我们可能想执行其他操作,这些操作可能不会影响整个流程,例如在解析之前把请求记录到日志,也可能影响后续的步骤,例如检查用户权限。简单来说,我们在主要的步骤之内、之间要执行很多很多操作。

钩子的做法,就是系统定义了很多固定的扩展点(例如解析请求前、解析请求后),系统在执行到这些扩展点的时候,去调用你埋下的钩子。你可以主要流程之外的其他地方,添加扩展行为,完全不用修改主要流程的代码。

直接调用,其实也就是直接修改主要流程的代码,可以在任意的地方插入函数调用,这种做法其实要比钩子强悍的多,但可维护性就没钩子那么好。

浮生未歇 2017-05-18 15:40:51

为了解藕,最大化代码的灵活性和扩展性,否则都写死了,一旦业务逻辑变更会使维护、扩展变得 困难而且容易出错

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文