Build configuration array from config files for different app parts.
Install the package with composer:
composer require alejan/yii2-configloader
You can use this extension to solve some or all of the following tasks:
- Build Yii2 configuration arrays for different app parts
- Load environment variables from a
.env
file - Get config options from environment variables
- Load environment and local configuration overrides
Override the index.php file like this
<?php
use alejan\yii2confload\Config;
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = new Config(__DIR__ . '/../../config', ['db', 'params']);
(new yii\web\Application($config->frontend))->run();
If you override index.php like example from paragraph 1 this extension will be load configuration from such files in configuration folder
main.php
- Load as default common config file if file existdb.php
- Setted when create new Config object. Load if file existparams.php
- Setted when create new Config object. Load if file existfrontend.php
- Setted when call $config->frontend. When call $config->backend will be loadbackend.php
frontend_dev.php
- Load if file exist. The 'dev' part is defined by the variable YII_ENVlocal_frontend.php
- Load if file existlocal_frontend_dev.php
- Load if file exist
By default local configuration files are not loaded.
To activate this feature you can either set the ENABLE_LOCALCONF
environment
variable (either in your server environment or in .env
):
ENABLE_LOCALCONF=1