PHP : changer les identifiants MYSQL automatiquement en local/production

Voila un petit bout de script qui peut être utile à ceux qui développent dans un environnement de test en local, puis envoient les fichiers en production.

L’une des principales différences entre la version de test et celle de production, sont les identifiants à la base de données MYSQL.

Je voyais certains clients changer manuellement les identifiants à chaque fois qu’ils passaient le site en local/production.

Voici un petit bout de script assez utile qui le fait automatiquement.

L’astuce réside du fait que le script test si l’appel au script se fait à partir d’une URL en localhost (donc 127.0.0.1, localhost,…). Il est possible aussi de mettre une condition par rapport à une IP secondaire d’un réseau local (comme 192.168.1.125).

A noter que cela ne marche pas dans tous les environnements de production, car le serveur distant peut considérer l’appel aux fichiers en tant que « local ». Ainsi, cela ne marchera. A tester et vérifier si cela marchera dans l’environnement de prod.

if($_SERVER['HTTP_HOST']=="localhost" OR $_SERVER['HTTP_HOST']=="127.0.0.1")
{
//local
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', '');
DEFINE ('DB_HOST', 'localhost'); //dépend du serveur, mais c'est souvent localhost
DEFINE ('DB_NAME', 'nom_base_de_donnees');
}
else
{
//production
DEFINE ('DB_USER', 'user');
DEFINE ('DB_PASSWORD', 'password');
DEFINE ('DB_HOST', 'localhost'); //dépend du serveur, mais c'est souvent localhost
DEFINE ('DB_NAME', 'nom_base_de_donnees');
}