PHP关于插件模块化开发的设计思路

通过Laravel 或者Thinkphp 开发一些项目时候,很多功能其实都是重复的,除过其他一切特定场景有些区别,所以想开始研究模块化的开发,对功能模块进行热更新,提高一些工作效率。

目前看到市场也有其他一些开源CMS,提供应用商店,供用户自由下载安装插件功能,类似下图


日常开发当中,经常用复制粘贴来复用,或者composer来管理,composer只适合一些SDK的功能包维护,对于这种插件市场的思路还是有些不太理解。
网上也没找到特别详细的教程说明,还请高手指点一二。

阅读 3.4k
1 个回答

想用插件, 就得按有插件的思路设计系统.

设计系统的时候, 对某功能要考虑能插件化.

比如插件一般有 安装, 卸载, 激活, 禁止 步骤, 那在系统中, 做这些操作的时候时候, 就要去执行插件里面的相应的方法/函数.
具体执行哪个方法, 可以是通过固定的配置文件, 也可以是按固定的命名类.

比如要求插件有 config.php 文件, 这个文件里面返回和系统约定的配置项目.

假如允许插件修改系统的菜单栏, 那在显示菜单栏之前, 就要调用插件修改菜单的功能, 例如使用事件通知观察者机制.

也可以理解成定义一个插件必须实现的接口, 在遇到特定情况的时候, 会执行这个接口.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题