没有 OOP 的观察者模式逻辑?
我正在考虑在我的网站上实现类似于观察者模式的逻辑,以实现挂钩。
我正在寻找类似于此 允许的最佳方式PHP 应用程序的插件
但是,那里的代码太有限,因为我无法将多个钩子附加到同一个侦听器。
我对如何放大该代码以使其能够在一个事件中侦听多个操作一无所知。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以按照 ircmaxell 的建议进行操作:添加挂钩。但显然,他提供的信息对你来说还不够。
如果您喜欢通过示例学习,您可以查看 CMS Drupal,它不是 OOP,而是使用观察者模式,称为 钩子遍布各处,以实现模块化设计。
钩子的工作原理如下:
例如:
神奇的事情发生在所谓的 user_callbacks 中。 示例:
函数
module_implements
可能看起来像这样的东西:You can do as ircmaxell suggests: add hooks. But clearly, the information he gave was not enough for you.
If you like learning by example, you may look at the CMS Drupal, wich is not OOP, but uses the observer pattern, called hooks all over the place to allow a modular design.
A hook works as follows:
For example:
The magic happens in so called user_callbacks. An example:
And the function
module_implements
might look something like:只需添加一个“*”挂钩,然后修改
hook()
函数即可调用指定事件和“*”事件中的所有“挂钩”。然后,只需执行以下操作:
Simply add a ' * ' hook, and modify the
hook()
function to call all the 'hooks' in both the named event and the ' * ' event.Then, simply do:
看一下 Spl_Observer。
您说过您不需要 OOP,但您可以轻松地实现一个非 OOP 包装器。
Take a look at Spl_Observer.
You said you didn't want OOP, but you can easily implement a non-OOP wrapper around this.