aaronadal/config-bundle
Symfony bundle that loads configuration from multiple YAML files automatically. Define default and environment-specific glob paths; files in the current environment override defaults. Uses Symfony cache for fast startup and cleaner parameter/service management.
This bundle offers some improvements in the configuration management of your Symfony application.
It allows you to write your application configuration to multiple environment-dependant files that will be loaded automatically when the application starts.
It offers an important DX: you can organize your configuration into several files without having to include them manually in your main config file.
It allows you to benefit from Symfony environments in a powerful way, and write different configurations for each of them easily.
It also provides a way to first determine a default set of services and parameters and then override them depending on the environment.
It takes advantage of the Symfony cache system, so it does not affect the loading time of your application.
You can use Composer to install this bundle:
composer require aaronadal/config-bundle
After this, you need to register the bundle in your application kernel:
// app/AppKernel.php
public function registerBundles()
{
return [
// ...
new Aaronadal\ConfigBundle\AaronadalConfigBundle(),
// ...
];
}
NOTE: Do not forget to place it above the bundles that depend on the dynamically loaded parameters.
You can configure two locations (through glob patterns) in which the bundle will look for the configuration files:
Let's configure it in the config.yml:
aaronadal_config:
location:
defaults: config/parameters/defaults/*.yml
environment: config/parameters/:env/*.yml
That's all! Quite simple. Now, all yml files inside the config/parameters/defaults/ folder will always be loaded
and if the environment is, for example, dev, all the yml files inside the config/parameters/dev/ folder will
override the default values (or will define new ones if not defined).
NOTE 1: Due to the way in which parameters are resolved by Symfony, parameters cannot be used in the definition of the locations. Only the :env placeholder is valid.
NOTE 2: The locations may be absolute or relative paths. If they are relative paths, the kernel.root_dir is taken as the reference path.
Don't you know how to create new environments in Symfony?
How can I help you explore Laravel packages today?