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

1. 问题描述?

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

2. 您期望得到的结果?

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

3. 我的尝试

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

该模块化开发,设计思路如何操作?以及热更新时候,采用什么办法去下载和删除插件?插件最好是和laravel内核相对独立,避免更新内核影响到插件的功能等等……

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

file 这种吗

2年前 评论
clark (楼主) 2年前
porygonCN

你想做的这个我也想过,我的思路是将常用功能尽可能的封装为一个个互不影响的包,共用部分也拆出来做单独的包。 以下是个人想法哈 不具备实践验证(做了一点 但是没坚持下去)。 做一个用户中心的模块,仅包含常规用户信息及基础用户认证方式以及预留的可扩展的登录(大概就是laravel提供的默认用户表跟auth认证 通过不同guard来调用不同登录)并提供配置文件

上面这点想删掉,但又觉得敲出来挺费劲的 :joy:

composer包并不是只适合做sdk,例如官方的Telescope 就是一个开箱即用的扩展,几乎不需要配置 只需要require后install即可 同理,自己做的包也能做到,laravel文档的扩展开发建议多读几遍,开箱即用只不过是把要用到的资源都携带并配置好、逻辑都完善,而不是提供一堆工具方法。

2年前 评论
porygonCN (作者) 2年前

其实就是高度封装,业务与程序分离,比如支付,采用策略模式封装好,然后插件服务初始化在注册支付网关,提供统一的外接口

2年前 评论

可以看看这个CMS:gitee.com/modstart/ModStartCMS

file

这样模块化我觉得挺好的

2年前 评论
clark (楼主) 2年前

插件的话,可以看 larke-admin ,前后端分离的系统,也带完善的扩展模块系统

2年前 评论

嗨喽,实现截图插件吗

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!