PHP插件应该有哪些特性?

我在写一个php的插件系统,对于插件应该有哪些功能感到疑惑。

我看了wordpress的插件机制,它分为filter与action两种钩子,filter钩子上挂载的方法会对值接力处理,action钩子是按顺序独立执行。

我在想是否需要一个once类型的钩子,只执行一次,执行挂载其上的权重最高的那个方法?

移除已挂载的方法是必要的吗?通常是什么样的使用场景?

在视图中,比如要替换标题的显示,如何用钩子实现呢?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

我在想是否需要一个 once 类型的钩子,只执行一次,执行挂载其上的权重最高的那个方法?

如果你指的是‘’只执行某段代码“并且打断其它已绑定的代码,那么这和wordpress的action和filter的设计初衷是相悖的。

移除已挂载的方法是必要的吗?通常是什么样的使用场景?

这种用法并不少见。场景就是你希望原先绑定到某个钩子的函数不要执行。

在视图中,比如要替换标题的显示,如何用钩子实现呢?

试试 the_title 这个filter。

3年前 评论
Wangds (楼主) 3年前
讨论数量: 2
Epona

有需要就加, 另外 插件系统可以无脑抄 Wordpress 和 Shopify的

3年前 评论

我在想是否需要一个 once 类型的钩子,只执行一次,执行挂载其上的权重最高的那个方法?

如果你指的是‘’只执行某段代码“并且打断其它已绑定的代码,那么这和wordpress的action和filter的设计初衷是相悖的。

移除已挂载的方法是必要的吗?通常是什么样的使用场景?

这种用法并不少见。场景就是你希望原先绑定到某个钩子的函数不要执行。

在视图中,比如要替换标题的显示,如何用钩子实现呢?

试试 the_title 这个filter。

3年前 评论
Wangds (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!