关于插件模块化开发的设计思路请教
1. 问题描述?
通过Laravel开发一些项目时候,很多功能其实都是重复的,除过其他一切特定场景有些区别,所以想开始研究模块化的开发,对功能模块进行热更新,提高一些工作效率。
2. 您期望得到的结果?
目前看到市场也有其他一些开源CMS,提供应用商店,供用户自由下载安装插件功能,类似下图
3. 我的尝试
经常用复制粘贴来复用,或者composer来管理,composer只适合一些SDK的功能包维护,对于这种插件市场的思路还是有些不太理解。
网上也没找到特别详细的教程说明,还请高手指点一二。
该模块化开发,设计思路如何操作?以及热更新时候,采用什么办法去下载和删除插件?插件最好是和laravel内核相对独立,避免更新内核影响到插件的功能等等……
你想做的这个我也想过,我的思路是将常用功能尽可能的封装为一个个互不影响的包,共用部分也拆出来做单独的包。 以下是个人想法哈 不具备实践验证(做了一点 但是没坚持下去)。做一个用户中心的模块,仅包含常规用户信息及基础用户认证方式以及预留的可扩展的登录(大概就是laravel提供的默认用户表跟auth认证 通过不同guard来调用不同登录)并提供配置文件上面这点想删掉,但又觉得敲出来挺费劲的 :joy:
composer包并不是只适合做sdk,例如官方的Telescope 就是一个开箱即用的扩展,几乎不需要配置 只需要require后install即可 同理,自己做的包也能做到,laravel文档的扩展开发建议多读几遍,开箱即用只不过是把要用到的资源都携带并配置好、逻辑都完善,而不是提供一堆工具方法。
其实就是高度封装,业务与程序分离,比如支付,采用策略模式封装好,然后插件服务初始化在注册支付网关,提供统一的外接口
可以看看这个CMS:gitee.com/modstart/ModStartCMS
这样模块化我觉得挺好的
插件的话,可以看 larke-admin ,前后端分离的系统,也带完善的扩展模块系统
嗨喽,实现截图插件吗