应用插件如果存在基础插件的依赖问题

chaz6chez

问题描述

假设我有一个基础插件实现了队列服务,提供了cli的操作方案和基础的function-api,现在我想通过应用插件的方式为它实现一套ui界面和增加一些丰富的业务逻辑;
在这个情况下应用插件是一个基础插件的拓展项目,基础插件安装方式是composer安装,而应用插件安装方式是市场/admin安装,那么在应用插件依赖某个基础插件的话,是否只能通过文档告知的形式手动进行依赖补齐,而不能通过自动安装或者依赖安装的方式进行补齐?

为此你搜索到了哪些方案及不适用的原因

webman文档中没有此部分相关内容

279 2 0
2个回答

walkor

我也发现这个问题了,这种我能想到的就是exec执行composer安装,但是感觉不靠谱。
没想出好的解决方案

  • chaz6chez 2024-01-05

    感觉执行composer安装的话,已经是最好的方式了,比如跟install一样,里面加一个开关,如果开启就默认执行composer依赖安装,关闭就自行手动安装。

    除了可能存在基础插件配置冲突问题:
    假设应用插件A和应用插件B都共同依赖基础插件C,但又依赖不同的基础插件C的配置信息,那么就会产生冲突。

    假设应用插件A和应用插件B是相同性质的插件,比如都是基础插件C的UI套件,那么择其一就好了,但假设是不同类型的应用,就有点麻烦。

    我其实个人倾向安装过程提示存在配置冲突,询问是否继续,如果继续,则按照基础插件C的默认配置安装,提示需要进行手动配置处理。

    我是这样想的,通常来说应用插件不会因为基础插件的配置而无法使用,如果存在冲突,再交给用户手动解决,然后webman文档内建议开发者在开发应用插件时如果存在基础插件依赖的时候给一个配置冲突的解决方案即可。

walkor

在这个情况下应用插件是一个基础插件的拓展项目,基础插件安装方式是composer安装,而应用插件安装方式是市场/admin安装,那么在应用插件依赖某个基础插件的话,是否只能通过文档告知的形式手动进行依赖补齐,而不能通过自动安装或者依赖安装的方式进行补齐?

应用插件不一定非要用应用市场来安装,其实也可以composer安装,写好install脚本把目录复制到plugin下,执行相关配置或建表操作等

  • chaz6chez 2024-01-05

    这样看来的话,其实exec执行composer依赖安装可能情况最好了,如果应用插件内包含composer.json,直接composer依赖安装就好了。

  • zjkal✅ 2024-01-16

    exce也不是很靠谱,因为有一个PHP版本的问题, 如果PHP-CLI的版本正好不是项目版本,哪会出问题的. 我见过这样的框架, 有类似的功能, 但是确实不太好用.

🔝