A plugin for Composer to create the WordPress configuration file which automagically defines constants from a .env file. Also includes path of Composer's autoloader in wp-config.php.
Via Composer
composer require johnpbloch/wordpress wearerequired/composer-wp-config
Copy .env.example and save it as .env. By default the variables are searched in a .env file in the same directory as wp-config.php .
_HTTP_HOST(Used when$_SERVER['SERVER_NAME']is not set, like WP-CLI.)DB_NAMEDB_USERDB_PASSWORDAUTH_KEYSECURE_AUTH_KEYLOGGED_IN_KEYNONCE_KEYAUTH_SALTSECURE_AUTH_SALTLOGGED_IN_SALTNONCE_SALT
See also the list of default constants.
You can override the path(s) with the following extra in your composer.json:
{
"extra": {
"wp-config-env-paths": [
"../",
"../configs"
]
}
}Note that the path must be relative to the wp-config.php file. Run composer build-wp-config to rebuild the wp-config.php file.
- Creates
wp-config.phpone level above the WordPress installation. - The
wp-config.phpincludes the path to Composer's autoloader. - Searches for
.envfile with the help of PHP dotenv. - Defines all variables as constants unless a constant is already set.
- Defines reasonable default values for database, object cache, debug, URL, and path constants.
- Use
{{DIR}}as placeholder in variable values to get it replaced with__DIR__ofwp-config.php. - Supports
URL_DEVELOPMENT,URL_STAGING, andURL_PRODUCTIONfor WordPress Stage Switcher. Requires at least v2.1. - Supports loading
wp-config-prepend.phpbefore andwp-config-append.phpafter the default config as part ofwp-config.php. - Loads the WordPress plugin API early so actions and filters can be used.
If the following variables are not defined they will be assigned a default value:
| Variable name | Default value |
|---|---|
WP_ENV |
'development' |
WP_ENVIRONMENT_TYPE |
Value of WP_ENV |
QM_DISABLED |
true |
SAVEQUERIES |
false |
WP_DEBUG |
false |
WP_DISABLE_FATAL_ERROR_HANDLER |
Value of WP_DEBUG |
WP_DEBUG_LOG |
false |
WP_DEBUG_DISPLAY |
false |
SCRIPT_DEBUG |
false |
DISALLOW_FILE_MODS |
true |
DB_HOST |
'localhost' |
DB_CHARSET |
'utf8' |
DB_COLLATE |
'' |
$table_prefix |
'wp_' |
WP_CACHE_KEY_SALT |
Value of WP_ENV |
WP_HOME |
Based on $_SERVER['SERVER_NAME']/_HTTP_HOST and $_SERVER['HTTPS'] |
WP_SITEURL |
Value of WP_HOME |
WP_CONTENT_FOLDER_NAME |
'content' |
WP_CONTENT_DIR |
__DIR__ . '/' . WP_CONTENT_FOLDER_NAME |
WP_CONTENT_URL |
WP_HOME . '/' . WP_CONTENT_FOLDER_NAME |
- Allow to change required variables via
composer.json. - Allow to change variables not used as a constant via
composer.json. - Let us know what you think is missing…
