On a souvent besoin de programmer/tester sur un serveur de développement et ensuite de passer l’application sur un serveur de production, hors même a ce moment on continue a bosser sur les 2 serveurs pour rajouter des options ou corriger des bugs … etc
Suivant le serveur sur lequel tourne l’application, les options de configuration seront différentes, tel que les informations pour ce connecter à la base de données, au SMTP, les chemins d’inclusions, ..etc
Ce sera à l’application de choisir les bonnes options suivant le serveur.
Pour que l’application sache sur quel serveur elle est situé, le plus simple est de lire la valeur de $_SERVER['SERVER_NAME']
.
en local, la valeur vaut généralement «localhost» ou «127.0.0.1» et sur ce site la valeur est «web.codeur.free.fr».
On peut donc créer le fichier de configuration avec les valeurs utiles pour chaque serveur :
switch($_SERVER['SERVER_NAME']){ case '127.0.0.1': case 'localhost': define('MYSQL', 'localhost'); define('MYSQL_LOGIN', 'general'); define('MYSQL_PASS', 'alcazar'); define('MYSQL_BASE', 'maBase'); define('DEBUG', true); define('PEAR_DIR', 'c:/Program Files/_travail/Apache2/htdocs/classes/PEAR/'); error_reporting(E_ALL ^ E_DEPRECATED); break; case 'web.codeur.free.fr': define('MYSQL', 'sql.free.fr'); define('MYSQL_LOGIN', 'marco'); define('MYSQL_PASS', 'polo'); define('MYSQL_BASE', 'baseFree'); define('DEBUG', false); define('PEAR_DIR', '/mnt/119/sdb/2/f/web.codeur/classes/PEAR/PEAR/'); error_reporting(E_ALL ^ E_WARNING ^ E_NOTICE ^ E_DEPRECATED); break; default: trigger_error('Erreur serveur : ' . $_SERVER['SERVER_NAME'], E_USER_ERROR); }
Ce fichier de configuration sera inclut dans tous les scripts ayant besoin de ces valeurs .. et maintenant on peut passer l’application d’un serveur à l’autre sans avoir de modification à faire, c’est pratique.