Shopware 6在安装或更新时不是会处理插件依赖吗?
我有以下插件:
PluginAaaaPluginBbbb(依赖于PluginAaaa)PluginCccc(依赖于PluginBbbb)
让我们设想这三个插件都由composer依赖并且文件系统中都可用。到现在为止,一切顺利。依赖关系也按预期被解决。但问题就在这里:
我能够在不安装或激活 PluginBbbb 和 PluginAaaa 的情况下,成功安装 PluginCccc。
php bin/console plugin:install --activate PluginCccc 这个命令在没有任何警告的情况下,成功安装并激活插件 PluginCccc。
但是当我在商店中开始浏览时,存在对 PluginBbbbBlahBlah::SAMPLE_CONST 和 public function __construct(private PluginAaaaBlahBlah $pluginAaaaBlahBlah) 的引用,但由于这些插件(PluginBbbb 和 PluginCccc)未被安装并激活,因此就会产生异常错误。
是的,我可以手动安装并激活它们,但等一下,Shopware的插件组件难道不应该为我们来管理吗?
你能否想象这对Composer来说是否也会成立?如果Composer要求我们自己来管理依赖:一个包依赖于若干包,层层依赖……从理论上讲,这不就是“包管理器”的职责吗?
在Shopware 6中,我们本不应该为此烦恼,但显然情况就是如此。
是否有办法在 PluginBbbb 和 PluginAaaa 未安装并激活时,阻止安装和激活 PluginCccc?或者事先安装并激活它们?
解决方案
当你在插件A 的 composer.json 中声明对插件B 的依赖时,管理员应该在插件B 尚未安装时禁止安装插件A。因此,这里基本上只需使用常规的Composer功能。
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。