【发布时间】:2011-10-14 08:06:50
【问题描述】:
我正计划开发一款具有 PHP 后端以与数据存储库通信的游戏。我正在考虑并得出结论,我们的游戏要遵循的最佳设计范式将是事件驱动的。我希望有一个成就系统(类似于本网站的徽章系统),基本上我希望能够将这些“成就检查”与游戏中发生的许多不同事件挂钩。即:
当用户执行操作时,X 钩子 Y 被触发并调用所有附加函数来检查成就要求。
在构建这样的架构时,我将允许轻松添加新成就,因为我所要做的就是将检查功能添加到适当的挂钩中,其他一切都会到位。
我不确定这是否是对我打算做的事情的一个很好的解释,但无论如何我正在寻找以下内容:
- 关于如何编写事件驱动应用程序的良好参考资料
- 代码 sn-p(s) 展示了如何在 PHP 中的函数中放置“钩子”
- 代码 sn-p(s) 显示如何将函数附加到第 2 点中提到的“钩子”
我对如何完成 2) 和 3) 有一些想法,但我希望精通此问题的人能够阐明最佳实践。
提前谢谢你!
【问题讨论】:
-
我知道 wordpress 在他们的插件中使用了钩子。你可以看看here
-
WordPress 钩子 API 的链接并不是我真正想要的。
-
好吧,你实际上可以检查一下 wordpress 如何使用钩子。有很好的文档,源代码清晰。
-
嗯,wordpress 钩子实现并不是一个很好的例子,它没有清晰的接口,实现是错误的,并且代码没有很好的文档记录。然而,它显示的是您可以将回调分配给变量,包括。数组,您可以对这些数组进行排序,以及在调用回调和取消注册回调时可能会做错什么。然而,这些信息并不是真正的可访问格式。
标签: php hook event-driven-design