PHP code example of roots / wp-config
1. Go to this page and download the library: Download roots/wp-config library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
roots / wp-config example snippets
$config = Config::make($rootDir)->bootstrapEnv();
$config
->env('WP_ENV', 'production')
->env('WP_HOME')
->set('WP_DEBUG', true)
->when($config->get('WP_ENV') === 'development', function($config) {
$config
->set('SAVEQUERIES', true)
->set('SCRIPT_DEBUG', true);
})
->apply();
use Roots\WPConfig\Config;
$config = Config::make($rootDir)->bootstrapEnv();
$config
->set('WP_DEBUG', true)
->set('WP_HOME', 'https://example.com')
->apply();
$config
->env('WP_ENV', 'production')
->when($config->get('WP_ENV') === 'development', function($config) {
$config
->set('WP_DEBUG', true)
->set('SAVEQUERIES', true)
->set('SCRIPT_DEBUG', true);
});
$home = $config->get('WP_HOME');
// With a default value (no exception if key is missing)
$env = $config->get('WP_ENV', 'production');
$config
->set('WP_SITEURL', $config->get('WP_HOME') . '/wp')
->apply();
$config->bootstrapEnv(); // Loads .env and .env.local files
$config
->env('DB_NAME')
->env('DB_USER')
->env('DB_HOST', 'localhost')
->apply();
// Register a hook
$config->addAction('security_setup', function($config) {
$config->set('FORCE_SSL_ADMIN', true);
$config->set('DISALLOW_FILE_EDIT', true);
});
// Execute the hook
$config
->set('WP_ENV', 'production')
->doAction('security_setup')
->apply();
// Package authors can register automatic configuration
$config->addAction('before_apply', function($config) {
// This runs automatically when apply() is called
$config->set('AUTOMATIC_CONFIG', 'set by package');
});
// Users just need to call apply() - no manual hook management
Config::define('WP_DEBUG', true);
Config::define('WP_HOME', env('WP_HOME'));
Config::apply();
$config = Config::make($rootDir);
$config
->set('WP_DEBUG', true)
->env('WP_HOME')
->apply();
// config/environments/development.php
Config::define('WP_DEBUG', true);
Config::define('SAVEQUERIES', true);
// config/application.php
Config::define('WP_HOME', env('WP_HOME'));
Config::apply();
$config
->env('WP_ENV', 'production')
->env('WP_HOME')
->when($config->get('WP_ENV') === 'development', function($config) {
$config
->set('WP_DEBUG', true)
->set('SAVEQUERIES', true);
})
->apply();
$dotenv = Dotenv::createImmutable($rootDir);
$dotenv->load();
$config = Config::make($rootDir)->bootstrapEnv();
Config::add_action('before_apply', function($config) { ... });
$config->addAction('before_apply', function($config) { ... });
use Roots\WPConfig\Config;
$rootDir = dirname(__DIR__);
$webrootDir = $rootDir . '/web';
$config = Config::make($rootDir)->bootstrapEnv()
->doAction('config_loaded');
$config
/**
* DB settings
*/
->env(['DB_NAME', 'DB_USER', 'DB_PASSWORD'])
->env('DB_HOST', 'localhost')
->set([
'DB_CHARSET' => 'utf8mb4',
'DB_COLLATE' => '',
])
->doAction('database_configured')
/**
* URLs
*/
->env('WP_HOME')
->set('WP_SITEURL', $config->get('WP_HOME') . '/wp')
->doAction('urls_configured')
/**
* Environment
*/
->env('WP_ENV', 'production')
->set('WP_ENVIRONMENT_TYPE', $config->get('WP_ENV'))
->doAction('environment_loaded')
/**
* Content directory
*/
->set([
'CONTENT_DIR' => '/app',
'WP_CONTENT_DIR' => "{$webrootDir}/app",
'WP_CONTENT_URL' => $config->get('WP_HOME') . '/app',
])
/**
* Authentication unique keys and salts
*/
->env([
'AUTH_KEY', 'SECURE_AUTH_KEY', 'LOGGED_IN_KEY', 'NONCE_KEY',
'AUTH_SALT', 'SECURE_AUTH_SALT', 'LOGGED_IN_SALT', 'NONCE_SALT',
])
/**
* Custom settings
*/
->set('AUTOMATIC_UPDATER_DISABLED', true)
->env('DISABLE_WP_CRON', false)
->set('DISALLOW_FILE_EDIT', true)
->env('DISALLOW_FILE_MODS', true)
->env('WP_POST_REVISIONS', true)
/**
* Performance settings
*/
->set('CONCATENATE_SCRIPTS', false)
/**
* Default debug settings
*/
->env('WP_DEBUG', false)
->set('WP_DEBUG_DISPLAY', false)
->set('WP_DEBUG_LOG', false)
->set('SCRIPT_DEBUG', false)
/**
* Development settings
*/
->when($config->get('WP_ENV') === 'development', function ($config) {
$config->set([
'SAVEQUERIES' => true,
'WP_DEBUG' => true,
'WP_DEBUG_DISPLAY' => true,
'WP_DEBUG_LOG' => true,
'WP_DISABLE_FATAL_ERROR_HANDLER' => true,
'SCRIPT_DEBUG' => true,
'DISALLOW_INDEXING' => true,
'DISALLOW_FILE_MODS' => false,
]);
})
/**
* Handle reverse proxy settings
*/
->when(
isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https',
function () { $_SERVER['HTTPS'] = 'on'; },
)
->apply();
$config->doAction('after_apply');
$table_prefix = $_ENV['DB_PREFIX'] ?? 'wp_';
if (! defined('ABSPATH')) {
define('ABSPATH', "{$webrootDir}/wp/");
}