The Modus Configuration class, supporting various local and global configuration settings for the Modus framework.
The Modus/Config package is designed to provide a simple, basic configuration layer and DI container setup mechanism for any project.
To install this package, run the following command:
composer require modus/config
##Dependencies This module depends on the phpdotenv project. No other dependencies are installed.
##Usage Using the configuration package is simple.
The package will automatically attempt to load up to three configuration files on each instantiation, based on the following rules:
- The specific environment specified
For example, if the environment specified is "production", then Modus/Config will load config.php, then production.php, then local.php.
Modus/Config is smart enough to override the early files with later configuration files. So for example, if you load a file with an array key of 'database' set to null, and in a later configuration set that value to the name of your MySQL database, Modus/Config will compile a configuration that contains the correct value.
For example, imagine the two following configuration files:
# config.php return [ 'database' => null, 'useMysql' => false, 'userEmail' => 'email@example.com', ];
#local.php return [ 'database' => 'myDb', 'useMysql' => true, 'storeEmail' => 'firstname.lastname@example.org', ];
When Modus/Config evaluates them together, it will create the following configuration:
#evaluated config return [ 'database' => 'myDb', 'useMysql' => true, 'storeEmail' => 'email@example.com', 'userEmail' => 'firstname.lastname@example.org', ];
In addition, Modus/Config is recursive, so multidimensional arrays will be merged correctly.
##Environment Variables Modus/Config allows you to optionally include the PHP Dotenv project, and define environment variables. This is useful for setting server-specific settings like passwords, keys, database names and server locations.