Aller au contenu

Fichier de configuration

Un fichier de configuration est un fichier utilisé par un logiciel pour définir les options et les paramètres de fonctionnement. Ce type de fichier est crucial pour les applications, car il leur permet de s'adapter à différentes conditions d'utilisation et préférences sans nécessiter une modification du code source.

Personnalisation : Les fichiers de configuration permettent aux utilisateurs ou administrateurs de systèmes de personnaliser le comportement et les fonctionnalités d'une application selon leurs besoins spécifiques.

Format : Ils peuvent être sous divers formats, tels que INI, XML, JSON, YAML, etc. Chaque format a ses propres avantages et est choisi en fonction des besoins de l'application.

Facilité de modification : Ils sont généralement conçus pour être modifiés facilement, souvent avec un éditeur de texte simple. Cela permet une modification rapide et directe des paramètres.

Contenu : Ces fichiers peuvent contenir des informations telles que des chemins d'accès à des ressources, des paramètres de connexion à une base de données, des options d'affichage, des niveaux de journalisation, etc.

Séparation du code et de la configuration : En séparant les paramètres de configuration du code source, les applications deviennent plus flexibles et plus faciles à maintenir. Les développeurs n'ont pas besoin de changer le code source pour ajuster les comportements de l'application.

Sécurité : Il est important de gérer ces fichiers avec précaution, surtout s'ils contiennent des informations sensibles comme des mots de passe ou des clés d'API. Les meilleures pratiques recommandent de les sécuriser et de les garder hors de portée des utilisateurs non autorisés.

Utilisation dans différents environnements : Les fichiers de configuration sont souvent utilisés pour adapter les applications à différents environnements, tels que le développement, le test et la production, chacun pouvant nécessiter des paramètres distincts.

Fichier INI

Les fichiers INI (Initialisation) sont un format de fichier de configuration originellement utilisé pour les applications logicielles sous Windows (et Windows lui-même), mais qu'on retrouve aujourd'hui dans de nombreuses applications et sur divers systèmes d'exploitation (ex. php.ini).

Structure simple : Les fichiers INI sont structurés en sections, et chaque section contient des clés et des valeurs. Une section est délimitée par des crochets [], et les clés sont suivies de leurs valeurs, généralement séparées par un signe égal =.

Facilité de lecture et d'écriture : Ces fichiers sont facilement lisibles et modifiables par des humains, ainsi que par des programmes. Ils sont souvent utilisés pour stocker les paramètres de configuration des utilisateurs et des applications.

Facilité d'utilisation : De nombreux langages de programmation fournissent des bibliothèques pour faciliter la lecture et l'écriture des fichiers INI.

Remplacement progressif : Avec le temps, des formats plus modernes et robustes comme XML et JSON ont remplacé les fichiers INI pour de nombreuses applications, surtout pour des configurations plus complexes.

Exemple de format

[auth]
name = admin
; Use quote to delimit string with special chars and avoid problem
password = "My P4ssW0rd"

[database]
server = 192.168.5.13
port = 3306
; There are no rules for cases, just be consistent
; And refer to the programming language used to read the config file
db_name = demo

Fichier INI dans les applications PHP

Dans le cadre des applications PHP, la configuration de paramètres spécifiques à l'infrastructure est une pratique courante :

  • Détails de connexion à la base de données.
  • Configurations pour la connexion à un serveur SMTP.
  • Paramètres réseau tels que adresses IP, ports, protocoles et autres.

Pour optimiser la maintenance et la configuration de l'application lors de son déploiement sur différents serveurs web, il est fortement conseillé de regrouper ces informations dans un fichier de configuration unique. Cela permet une gestion centralisée, facilitant les ajustements et mises à jour nécessaires.

Tip

Dans le contexte d'une application web, il est impératif de garantir que les fichiers de configuration ne soient pas accessibles via une URL. Pour ce faire, ces fichiers doivent être placés en dehors du dossier désigné par la directive root dans les blocs de configuration server (Virtual Host) du serveur web nginx. Cette pratique assure une sécurité accrue en empêchant l'accès direct à des informations sensibles depuis le web.

PHP possède une fonction très pratique permettant de charger un fichier de configuration dans un tableau associatif : PHP - parse_ini_file

config-ini.png

<?php
$config = parse_ini_file('config.ini', true);
var_dump($config);

config-ini-web.png