我正在开发一个任务管理应用程序供我的公司使用。部分规范是创建一个插件系统,使用户可以根据需要定制和扩展功能,或根据其部门的要求进行扩展。我很乐意以一种非常优雅和模块化的方式来做到这一点,但我很难弄清楚如何做到这一点。如何模块化php应用程序的插件/扩展功能?
考虑一个观点,这是一个任务列表:发电循环的每次迭代增加了对任一端pre_task()
和post_task()
调用,它建立在任务标题(Complete复选框,评论链接等)两端的互动作品。现在,当系统检测并包含插件文件plugin_time_tracking.php
时,该插件应该为post_task()添加功能 - 除了其他所有内容外,还要添加“跟踪时间”按钮。
我想要完成的是将插件“挂钩”到pre_task()或post_task()上 - 让它通过附加到适当的函数并扩展它们来完成所有的工作,而不是核心排序插件并将它们的功能放到正确的地方。 PHP提供这样的功能吗?我是否以这种错误的方式去做?让我知道是否需要澄清 - 谢谢你的帮助!
装饰模式,你是不是? (http://en.wikipedia.org/wiki/Decorator_pattern) – Boynux 2013-03-01 18:53:54