通过Laravel 或者Thinkphp 开发一些项目时候,很多功能其实都是重复的,除过其他一切特定场景有些区别,所以想开始研究模块化的开发,对功能模块进行热更新,提高一些工作效率。
目前看到市场也有其他一些开源CMS,提供应用商店,供用户自由下载安装插件功能,类似下图
日常开发当中,经常用复制粘贴来复用,或者composer来管理,composer只适合一些SDK的功能包维护,对于这种插件市场的思路还是有些不太理解。
网上也没找到特别详细的教程说明,还请高手指点一二。
通过Laravel 或者Thinkphp 开发一些项目时候,很多功能其实都是重复的,除过其他一切特定场景有些区别,所以想开始研究模块化的开发,对功能模块进行热更新,提高一些工作效率。
目前看到市场也有其他一些开源CMS,提供应用商店,供用户自由下载安装插件功能,类似下图
日常开发当中,经常用复制粘贴来复用,或者composer来管理,composer只适合一些SDK的功能包维护,对于这种插件市场的思路还是有些不太理解。
网上也没找到特别详细的教程说明,还请高手指点一二。
15 回答8.4k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
1 回答2.9k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
想用插件, 就得按有插件的思路设计系统.
设计系统的时候, 对某功能要考虑能插件化.
比如插件一般有 安装, 卸载, 激活, 禁止 步骤, 那在系统中, 做这些操作的时候时候, 就要去执行插件里面的相应的方法/函数.
具体执行哪个方法, 可以是通过固定的配置文件, 也可以是按固定的命名类.
比如要求插件有 config.php 文件, 这个文件里面返回和系统约定的配置项目.
假如允许插件修改系统的菜单栏, 那在显示菜单栏之前, 就要调用插件修改菜单的功能, 例如使用事件通知观察者机制.
也可以理解成定义一个插件必须实现的接口, 在遇到特定情况的时候, 会执行这个接口.