semaio / magento2-configimportexport
在 Magento 2 中导入/导出 core_config_data 值
Requires
- php: ^7.2|^8.1
- magento/framework: *
- magento/module-config: *
- magento/module-store: *
- symfony/yaml: ^3.4|^4.0|^5.0|^6.0|^7.0
Requires (Dev)
README
此扩展为 Magento 2 提供了 CLI 命令,用于导入/导出系统配置数据。
为什么选择此扩展?
虽然 Magento 2 提供了 app:config:dump
/ app:config:import
命令,但它们仅限于一个环境,并且管理起来有些困难,尤其是在 CI/CD 设置中。
此扩展支持管理多个环境(生产、测试等)的配置值,并允许在特定环境中定义和覆盖基本配置值。它还支持不同的文件格式(例如 YAML、JSON)。总的来说,它使这个过程更加流畅和易于管理,并具有通用性和与其他使用此扩展的机构/商家的跨兼容性。
安装
将包添加到 composer.json
composer require semaio/magento2-configimportexport
启用并安装模块
php bin/magento module:enable Semaio_ConfigImportExport php bin/magento setup:upgrade
事实
- 支持的 Magento 版本是 2.3 和 2.4。
- 支持的 PHP 版本是 7.2、7.3、7.4 和 8.1。
功能
此模块是一个持续改进的项目,未来将扩展更多功能和对其他文件格式的支持。
文件格式
此模块目前支持以下文件格式
- YAML(默认)
- JSON
有关更多信息示例,请参阅 docs/file-formats.md。
导入配置数据
有关更多信息,请参阅 docs/config-import.md。
导出配置数据
有关更多信息,请参阅 docs/config-export.md。
与 Deployer 一起使用
在 CI/CD 中使用推送方法时,应在运行器上替换环境变量,而不是在启动主机或目标主机上。为此,您可以使用此 Deployer 任务来完成此操作并导入配置设置;
task('magento:config:set', function () {
$resolver = new \Semaio\ConfigImportExport\Model\Resolver\EnvironmentVariableResolver();
$glob = glob('config/store/**/*.yaml');
array_walk($glob, function ($file) use ($resolver) {
if (file_put_contents($tempFile = tempnam('/tmp', get('clientslug')), $resolver->resolveValue(file_get_contents($file)))) {
upload($tempFile, get('release_path') . '/' . $file);
}
});
run('{{bin/php}} {{release_path}}/bin/magento config:data:import {{release_path}}/config/store ' . get('environment'));
});
支持
如果您遇到任何问题或错误,请在此处创建问题 GitHub。
贡献
对 MageSetup 开发的任何贡献都备受欢迎。提供代码的最佳方式是在此处打开 GitHub 上的拉取请求。
许可证
贡献者
感谢所有 贡献者 贡献了宝贵的时光,为此模块做出了贡献。非常感谢!
灵感
此模块受到 Magento 1 的 n98-magerun 插件 "HarrisStreet ImpEx" by @SchumacherFM 的启发,您可以在以下链接中找到: 这里。
版权
(c) 2016-2022 semaio GmbH / Rouven Alexander Rieker