Utilisation des variables d'environnement en configuration de Wordpress
Question
J'utilise phpfog.com pour l'hébergement et github.com pour le suivi des problèmes, etc. J'ai deux configuration de télécommandes, un à phpfog.com, et l'autre à GitHub.
Dans l'administration back-end vous phpfog pouvez définir des variables d'environnement. Je l'ai fait il et que vous voulez les utiliser dans mon fichier wp-config.
Voici le code je:
/** Hardened Salts for use on github.com, phpfog.com, etc.*/
$AUTH_KEY = getenv('AUTH_KEY');
$SECURE_AUTH_KEY = getenv('SECURE_AUTH_KEY');
$LOGGED_IN_KEY = getenv('LOGGED_IN_KEY');
$NONCE_KEY = getenv('NONCE_KEY');
$AUTH_SALT = getenv('AUTH_SALT');
$SECURE_AUTH_SALT = getenv('SECURE_AUTH_SALT');
$LOGGED_IN_SALT = getenv('LOGGED_IN_SALT');
$NONCE_SALT = getenv('NONCE_SALT');
define('AUTH_KEY',$AUTH_KEY);
define('SECURE_AUTH_KEY',$SECURE_AUTH_KEY);
define('LOGGED_IN_KEY',$LOGGED_IN_KEY);
define('NONCE_KEY',$NONCE_KEY);
define('AUTH_SALT',$AUTH_SALT);
define('SECURE_AUTH_SALT',$SECURE_AUTH_SALT);
define('LOGGED_IN_SALT',$LOGGED_IN_SALT);
define('NONCE_SALT',$NONCE_SALT);
/** ------------------------------------=-----*/
Il doit y avoir un moyen plus propre de le faire ...
MISE A JOUR! Voici le code nettoyé grâce à zerkms
$dbvalues = array('DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASSWORD');
/** -------------------------------------------------------------*/
foreach ($dbvalues as $dbvalue) {
define($dbvalue, getenv($dbvalue));
}
$saltykeys = array('AUTH_KEY', 'SECURE_AUTH_KEY', 'LOGGED_IN_KEY', 'NONCE_KEY', 'AUTH_SALT', 'SECURE_AUTH_SALT' , 'LOGGED_IN_SALT', 'NONCE_SALT' );
/** -------------------------------------------------------------*/
foreach ($saltykeys as $saltykey) {
define($saltykey, getenv($saltykey));
}
La solution
Vous pourriez faire passer deux fois plus le résultat de la fonction en tant que valeur constante sans variable intermédiaire:
define('AUTH_KEY', getenv('AUTH_KEY'));
Ou faire dans une boucle:
$vars = array('AUTH_KEY', 'SECURE_AUTH_KEY', ...);
foreach ($vars as $var) {
define($var, getenv($var));
}
Autres conseils
Je préfère utiliser cette approche ci-dessous:
<?php
//GET HOSTNAME INFO
$hostname = $_SERVER['SERVER_NAME'];
//VERIFY WHICH ENVIRONMENT THE APP IS RUNNING
switch ($hostname) {
case 'development.dev':
define('WP_ENV', 'development');
define('WP_DEBUG', true);
break;
case 'staging.mywebsite.com':
define('WP_ENV', 'staging');
define('WP_DEBUG', true);
break;
case 'www.mywebsite.com':
define('WP_ENV', 'production');
define('WP_DEBUG', false);
break;
default:
define('WP_ENV', 'production');
define('WP_DEBUG', false);
}
?>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow