{"id":24780403,"url":"https://github.com/webgriffe/config-extension","last_synced_at":"2025-10-12T04:31:15.938Z","repository":{"id":22678775,"uuid":"26022320","full_name":"webgriffe/config-extension","owner":"webgriffe","description":"Magento extension that improves config system","archived":false,"fork":false,"pushed_at":"2018-02-17T15:15:14.000Z","size":86,"stargazers_count":20,"open_issues_count":0,"forks_count":1,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-09-12T20:51:08.713Z","etag":null,"topics":["magento","magento-configuration","magento-extension","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/webgriffe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-10-31T15:47:11.000Z","updated_at":"2017-06-27T21:23:14.000Z","dependencies_parsed_at":"2022-08-24T14:09:31.463Z","dependency_job_id":null,"html_url":"https://github.com/webgriffe/config-extension","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/webgriffe/config-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2Fconfig-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2Fconfig-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2Fconfig-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2Fconfig-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webgriffe","download_url":"https://codeload.github.com/webgriffe/config-extension/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webgriffe%2Fconfig-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279010259,"owners_count":26084719,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["magento","magento-configuration","magento-extension","php"],"created_at":"2025-01-29T10:30:22.114Z","updated_at":"2025-10-12T04:31:15.672Z","avatar_url":"https://github.com/webgriffe.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"Webgriffe Config\n================\n\n[![Build Status](https://travis-ci.org/webgriffe/config-extension.svg?branch=master)](https://travis-ci.org/webgriffe/config-extension)\n\nMagento 1.x extension that improves config system.\n\nIndeed, Magento configuration is driven by database. This, sometimes, is overkill and forces us to maintain upgrade scripts to keep Magento envorinment aligned with features development.\n\nInstallation\n------------\n\nTo use the version greater or equal than `3.*` of this extension you need to have the Magento core itself managed by [Composer](https://getcomposer.org/) using the Aydin Hassan's [magento-core-composer-installer](https://github.com/AydinHassan/magento-core-composer-installer) and a `magento-core` package like the [Bragento's](https://github.com/bragento/magento-core) `magento/core`.\n\nIndeed the version greater or equal than `3.*` of this extension uses the Cameron Eagans's [composer-patches](https://github.com/cweagans/composer-patches) to apply a patch to the `Mage_Core_Model_Config` to allow configuration override.\n\nIf not already installed, add to your project the [Magento Composer Installer](https://github.com/magento-hackathon/magento-composer-installer), and then add the `webgriffe/config-extension` and the `cweagans/composer-patches` packages to your dependencies:\n\n\tcomposer require --no-update webgriffe/config-extension\n\tcomposer require --no-update cweagans/composer-patches\n\nThen you need to add an `extra` configuration to your `composer.json` file with the patch configuration:\n\n```json\n\"extra\": {\n    \"patches\": {\n        \"magento/core\": {\n            \"Config model patch to allow override\": \"https://raw.githubusercontent.com/webgriffe/config-extension/master/config-model.patch\"\n        }\n    },\n    \"composer-exit-on-patch-failure\": true\n}\n```\nIf you have a different package as Magento core you have to use its name in the `patches` section.\n\nMoreover you have to remove the `magento/core` package from the filesystem so the package is re-installed and then patched.\n\n\trm -rf vendor/magento/core\n\t\nFinally, you can install the extension:\n\n\tcomposer update webgriffe/config-extension cweagans/composer-patches\n\t\nComposer should output something like the following during the installation:\n\n\t- Applying patches for magento/core\n    vendor/webgriffe/config-extension/config-model.patch (Config model patch to allow override)\n\t- MagentoCoreInstaller: Installing: \"magento/core\" version: \"1.9.3.7\" to: \"magento\"\n\nNow you should have the extension succesfully installed and the `Mage_Core_Model_Config` patched, look at the `app/code/core/Mage/Core/Model/Config.php` to confirm that it's patched (you should see a patch comment on the class heading).\n\nIf you cannot manage the Magento core with Composer you have to use the version `2.*` of this extension but you'll miss the latest features and the installation steps are different and are described on the `README.md` of the `2.x` branch.\n\nConfig override\n---------------\n\nSo, this extension enables additional config file that overrides database configuration. The file must be at path `app/etc/config-override.xml.dist`. For example:\n\n```xml\n\u003c?xml version=\"1.0\"?\u003e\n\u003cconfig\u003e\n\t\u003cdefault\u003e\n    \t\u003cgeneral\u003e\n        \t\u003clocale\u003e\n            \t\u003ccode\u003een_US\u003c/code\u003e\n            \u003c/locale\u003e\n\t    \u003c/general\u003e\n    \u003c/default\u003e\n    \u003cstores\u003e\n    \t\u003cit_it\u003e\t    \t\t\t\n\t\t\t\u003cgeneral\u003e\n        \t\t\u003clocale\u003e\n    \t        \t\u003ccode\u003eit_IT\u003c/code\u003e\n\t            \u003c/locale\u003e\n    \t    \u003c/general\u003e\n    \t\u003c/it_it\u003e\n    \u003c/stores\u003e\n\u003c/config\u003e\n```\n\t\nThe extension tries also to load the *non-dist* file at `app/etc/config-override.xml` which, if present, extends the `app/etc/config-override.xml.dist`. In this way you can put the `app/etc/config-override.xml.dist` file under version control to share that configuration with others but ignore the `app/etc/config-override.xml` to have it only on your machine.\n\t\nEnvironment specific config\n---------------------------\n\nYou can set different config based on current environment by defining several environment config files that must be placed in `app/etc` and must be named with the pattern `config-override-{env}.xml.dist` where `{env}` is the current environment (for example `config-override-dev.xml` for `dev` environment or `config-override-prod.xml.dist` for `prod` environment). Environment specific config ovverrides `app/etc/config-override.xml.dist` config explained above. To specify the current environment you must set the environment variable `MAGE_ENVIRONMENT`. For example in Apache virtual host configuration or in the `.htaccess`file you can do:\n\n\tSetEnv MAGE_ENVIRONMENT \"dev\"\n\t\nEven with environment specific configuration you can use *dist* and *non-dist* files. So you can have `config-override-dev.xml.dist` which can be extended by `config-override-dev.xml`.\n\t\n\nEcomDev_PHPUnit local.xml.phpunit laoding\n-----------------------------------------\n\nThis extension also allows to load the `local.xml.phpunit` file of the [EcomDev_PHPUnit](https://github.com/EcomDev/EcomDev_PHPUnit) testing module. To enable this feature the `MAGE_LOAD_ECOMDEV_PHPUNIT_CONFIG` environment variable must be set to `1`.\nThen using a library like [CgiHttpKernel](https://github.com/igorw/CgiHttpKernel) you can do full acceptance (or functional testing) on a test-dedicated database (which is also used by other EcomDev_PHPUnit's tests). Have a look at [Webgriffe's Functional Test Trait](https://github.com/webgriffe/functional-test-trait) for more information.\n\nOverridden config values are shown in backend\n---------------------------------------------\n\nOverridden config values are shown in Magento's backend. Every config setting it's shown on its section. For example, if you have the following `config-override.xml` file:\n\n```xml\n\u003c?xml version=\"1.0\"?\u003e\n\u003cconfig\u003e\n\t\u003cdefault\u003e\n    \t\u003cdesign\u003e\n        \t\u003cpackage\u003e\n            \t\u003cname\u003emy-package-name\u003c/name\u003e\n          \u003c/package\u003e\n\t    \u003c/design\u003e\n    \u003c/default\u003e\n\u003c/config\u003e\n```\t\n\nWhen you'll go to `System -\u003e Configuration -\u003e General -\u003e Design` you'll find the overridden config value shown and not editable.\n\n![image](admin-screenshot.png)\n\nThis feature improves a lot the usability of this extension.\n\nTo Do\n-----\n\n* Performance improvements\n* Interdependent fields handling\n* Password/encrypted fields handling\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebgriffe%2Fconfig-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebgriffe%2Fconfig-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebgriffe%2Fconfig-extension/lists"}