在Magento 2(任何稳定的版本)中,您可以运行此命令,bin/magento info:dependencies:show-modules
并且您将在应用程序的根目录中获得一个csv文件,该文件modules-dependencies.csv
带有如下所示的所有模块依赖项:
什么是硬依赖性,什么是软依赖性?每个示例都有帮助。
在Magento 2(任何稳定的版本)中,您可以运行此命令,bin/magento info:dependencies:show-modules
并且您将在应用程序的根目录中获得一个csv文件,该文件modules-dependencies.csv
带有如下所示的所有模块依赖项:
什么是硬依赖性,什么是软依赖性?每个示例都有帮助。
Answers:
有三种不同的依赖项解析器(的实现Magento\Setup\Module\Dependency\ParserInterface
):
区分硬依赖性和软依赖性的唯一一个是composer解析器(请参阅:Magento \ Setup \ Module \ Dependency \ Parser \ Composer \ Json :: extractDependencies())
一个柔软的依赖是一个包,在“建议”,上市难在“规定”的依赖包。
默认的依赖项类型是hard,这意味着其他解析器发现的依赖项总是很困难(请参阅Magento \ Setup \ Module \ Dependency \ Report \ Dependency \ Data \ Dependency :: __ construct())。
一个简单明了的解释(来自Magento U基础课程):
表示一个模块如果没有其他模块就不能运行。
硬依赖性的示例包括:
Magento_AdminNotification
对...有严格的依赖 Magento_Store
表示一个模块可以在没有其他模块依赖的情况下运行。
软依赖项的示例包括:
Magento_AdvancedPricingImportExport
对以下Magento_CatalogImportExport
代码有软依赖性:
if (!$model instanceof \Magento\CatalogImportExport\Model\Export\Product\Type\AbstractType) {
throw new \Magento\Framework\Exception\LocalizedException(
__(
'Entity type model must be an instance of'
. ' \Magento\CatalogImportExport\Model\Export\Product\Type\AbstractType'
)
);
}
如果一个模块使用另一个模块的代码,则应显式声明依赖关系。
编辑:刚刚注意到,这在官方文档中也有明确说明:https : //devdocs.magento.com/guides/v2.3/architecture/archi_perspectives/components/modules/mod_depend.html