webgriffe / module-config-override
一个从文件读取额外配置的Magento 2模块
Requires
- php: ~5.6.0|~7.0.0|~7.1.0
- magento/framework: ^100.0.0|^101.0.0
- magento/module-backend: ^100.0.0
- magento/module-config: ^100.1.1|^101.0.0
- symfony/yaml: ^2.0|^3.0
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^2.5
README
⚠️弃用⚠️
此模块现在已无用,您可以使用
composer require symfony/dotenv
,查看这些说明以了解层次结构;- 创建文件
app/etc/EnvironmentVariablesLoader.php
<?php declare(strict_types=1); use Symfony\Component\Dotenv\Dotenv; (new Dotenv())->loadEnv(__DIR__ . "/../../.env");
- 通过修改
composer.json
文件来加载它
"files": [ + "app/etc/EnvironmentVariablesLoader.php", "app/etc/NonComposerComponentRegistration.php" ],
- 创建配置变量环境文件,如magento文档中所述。
⚠️弃用⚠️
一个从文件覆盖默认配置的Magento 2模块,可添加到版本控制中,受此Magento 1.x扩展启发:https://github.com/webgriffe/config-extension。
安装
使用Composer将此扩展添加为依赖项
composer require webgriffe/module-config-override
php bin/magento setup:upgrade
配置覆盖
Magento配置由数据库驱动。这有时会过于强大,并迫使我们维护升级脚本来保持Magento环境与功能开发保持一致。因此,此扩展启用了一个额外的配置源,该源加载多个YAML文件并覆盖数据库配置。
加载的YAML文件顺序如下
app/etc/default.yml.dist
:这个文件旨在在版本控制下分发所有环境的配置。app/etc/default.yml
:这个文件旨在由版本控制系统忽略,以提供与本地需求相关的配置。
此外,如果定义了MAGE_ENVIRONMENT
环境变量,则还会加载两个额外的文件。例如,如果MAGE_ENVIRONMENT
变量的值为dev
,则以下两个文件被加载
app/etc/default-dev.yml.dist
:与default.yml.dist
相同,这个文件旨在在版本控制下分发配置,但仅针对dev
环境。app/etc/default-dev.yml
:与default.yml
相同,这个文件旨在由版本控制系统忽略,以提供与本地需求相关的配置,但仅针对dev
环境。
YAML文件中的配置必须使用与Magento系统配置相同的结构指定,例如
web: secure: base_url: "http://my-project-url.dev/" unsecure: base_url: "http://my-project-url.dev/"
仅覆盖default
配置范围。
CLI说明
请注意,如果您使用MAGE_ENVIRONMENT
变量,那么当Magento运行时它应该始终设置。所以仅通过您的web服务器设置它(例如,使用Apache中的SetEnv "dev"
)是不够的,但它也应该设置在您的命令行shell中。否则,如果您启用了Magento的配置缓存并从命令行清除缓存,则不会应用MAGE_ENVIRONMENT
,您将遇到意外的行为。
请记住在通过shell运行命令时“导出”您的事件变量
export MAGE_ENVIRONMENT=dev && <your command>
或者,您可以将MAGE_ENVIRONMENT=dev
添加到您的shell配置中(例如,对于bash)
文件/home/<您用户>/.bashrc
....
....
MAGE_ENVIRONMENT=dev
覆盖的配置值在后台显示
覆盖的配置值在Magento的后台显示。每个配置设置都显示在其部分中。例如,如果您有以下的default.yml
文件
design: head: default_title: Webgriffe Store title_suffix: - Webgriffe Store
当您进入 商店 -> 配置 -> 通用 -> 设计
时,您将看到显示的覆盖配置值,但不能编辑。
此功能大大提高了该扩展的可用性。
待办事项
- 改进系统配置管理员界面以支持复杂字段
鸣谢
- 由 Webgriffe® 开发