webgriffe / config-extension
Magento 配置扩展
Suggests
- cweagans/composer-patches: To apply the necessary Mage_Core_Model_Config patch. See the README.md
- ecomdev/ecomdev_phpunit: Loading of the local.xml.phpunit file is supported.
README
Magento 1.x 扩展,可改进配置系统。
实际上,Magento 配置是由数据库驱动的。有时,这过于强大,并迫使我们维护升级脚本以保持 Magento 环境与功能开发保持一致。
安装
要使用此扩展的版本 3.* 或更高版本,您需要使用 Aydin Hassan 的 Composer 和 magento-core-composer-installer 来管理 Magento 核心本身,并且需要一个 magento-core
包,如 Bragento 的 magento/core
。
实际上,此扩展的版本 3.* 或更高版本使用 Cameron Eagans 的 composer-patches 来对 Mage_Core_Model_Config
应用补丁,以便允许配置覆盖。
如果尚未安装,请将 Magento Composer Installer 添加到您的项目中,然后添加 webgriffe/config-extension
和 cweagans/composer-patches
包到您的依赖项
composer require --no-update webgriffe/config-extension
composer require --no-update cweagans/composer-patches
然后您需要将带有补丁配置的 extra
配置添加到您的 composer.json
文件中
"extra": { "patches": { "magento/core": { "Config model patch to allow override": "https://raw.githubusercontent.com/webgriffe/config-extension/master/config-model.patch" } }, "composer-exit-on-patch-failure": true }
如果您有不同名称的 Magento 核心包,您必须在 patches
部分中使用其名称。
此外,您必须从文件系统中删除 magento/core
包,以便重新安装并打上补丁。
rm -rf vendor/magento/core
最后,您可以安装扩展
composer update webgriffe/config-extension cweagans/composer-patches
在安装过程中,Composer 应该输出类似于以下内容
- Applying patches for magento/core
vendor/webgriffe/config-extension/config-model.patch (Config model patch to allow override)
- MagentoCoreInstaller: Installing: "magento/core" version: "1.9.3.7" to: "magento"
现在您应该已成功安装扩展,并已对 Mage_Core_Model_Config
打上补丁,查看 app/code/core/Mage/Core/Model/Config.php
以确认已打上补丁(您应该在类标题处看到补丁注释)。
如果您无法使用 Composer 管理 Magento 核心,您必须使用此扩展的版本 2.*,但您将错过最新的功能,安装步骤也不同,在 2.x
分支的 README.md
中描述。
配置覆盖
因此,此扩展启用了一个额外的配置文件,该文件覆盖了数据库配置。该文件必须位于路径 app/etc/config-override.xml.dist
。例如
<?xml version="1.0"?> <config> <default> <general> <locale> <code>en_US</code> </locale> </general> </default> <stores> <it_it> <general> <locale> <code>it_IT</code> </locale> </general> </it_it> </stores> </config>
该扩展还尝试加载位于 app/etc/config-override.xml
的 非-dist 文件,如果存在,则扩展 app/etc/config-override.xml.dist
。这样,您可以将 app/etc/config-override.xml.dist
文件置于版本控制下,与他人共享该配置,但忽略 app/etc/config-override.xml
以仅将其保留在您的计算机上。
特定环境的配置
您可以根据当前环境设置不同的配置,通过定义几个环境配置文件,这些文件必须放置在 app/etc
中,并且必须使用 config-override-{env}.xml.dist
模式命名,其中 {env}
是当前环境(例如 config-override-dev.xml
用于 dev
环境,或 config-override-prod.xml.dist
用于 prod
环境)。特定环境的配置覆盖上述 app/etc/config-override.xml.dist
配置。要指定当前环境,您必须设置环境变量 MAGE_ENVIRONMENT
。例如,在 Apache 虚拟主机配置或 .htaccess
文件中,您可以这样做
SetEnv MAGE_ENVIRONMENT "dev"
即使在特定环境的配置下,您也可以使用dist和non-dist文件。因此,您可以拥有config-override-dev.xml.dist
文件,它可以通过config-override-dev.xml
文件进行扩展。
EcomDev_PHPUnit local.xml.phpunit加载
此扩展还允许加载EcomDev_PHPUnit测试模块的local.xml.phpunit
文件。要启用此功能,必须将环境变量MAGE_LOAD_ECOMDEV_PHPUNIT_CONFIG
设置为1
。然后,使用类似CgiHttpKernel的库,您可以在专用的测试数据库上执行完整的验收测试(或功能测试)(该数据库也用于其他EcomDev_PHPUnit测试)。有关更多信息,请参阅Webgriffe的功能测试特性。
覆盖的配置值在后台显示
覆盖的配置值在Magento的后台显示。每个配置设置都显示在其相应的部分中。例如,如果您有以下config-override.xml
文件
<?xml version="1.0"?> <config> <default> <design> <package> <name>my-package-name</name> </package> </design> </default> </config>
当您转到系统 -> 配置 -> 通用 -> 设计
时,您会看到显示的覆盖配置值,但不能编辑。
此功能大大提高了该扩展的可用性。
待办事项
- 性能改进
- 处理相互依赖的字段
- 处理密码/加密字段