我正在开发用于我公司的任务管理应用程序。规范的一部分是创建一个插件系统,允许用户根据需要或部门需要自定义和扩展功能。我很想以一种非常优雅和模块化的方式来做这件事,但我很难弄清楚如何做。
考虑一个作为任务列表的视图:生成循环的每次迭代都会在任一端添加一个pre_task()
andpost_task()
调用,这会在任务标题的任一端构建交互式片段(完成复选框、评论链接等)。现在,当系统检测到并包含插件文件plugin_time_tracking.php
时,插件应该向 post_task() 添加功能 - 除了其他所有内容之外,还添加一个“跟踪时间”按钮。
我想要完成的是使插件“挂钩”到 pre_task() 或 post_task() - 让它通过将自身附加到适当的功能并扩展它们来完成所有的工作,而不是拥有核心排序插件并放牧它们功能到正确的地方。PHP 是否提供这样的功能?我会以错误的方式解决这个问题吗?让我知道是否需要澄清 - 感谢您的帮助!