Analyseur de configuration INI
Les fichiers INI sont un format de configuration simple avec des sections et des paires clé-valeur, historiquement utilisé par Windows et encore courant dans de nombreuses applications (php.ini, my.cnf, setup.cfg). Cet outil analyse la syntaxe INI, affiche les sections et propriétés, et peut convertir en JSON.
Specifications
Cas d'utilisation courants
- Inspecter la configuration php.ini ou MySQL my.cnf
- Analyser les fichiers Python setup.cfg ou tox.ini
- Examiner les fichiers de configuration Git (.gitconfig)
- Déboguer les paramètres d'applications Windows
- Convertir les configurations INI existantes en JSON ou YAML
Fonctionnalites
- Analyser les en-têtes [section] et les paires clé=valeur
- Gérer les commentaires (préfixes ; et #)
- Prise en charge des valeurs entre guillemets avec séquences d'échappement
- Afficher les propriétés globales (avant toute section)
- Convertir en JSON pour une utilisation programmatique
- Mode d'affichage mis en forme
- Affichage des commentaires par section
- Avertissements d'analyse pour les entrées malformées
Exemples
Configuration de base de données
Essayer →Un fichier de configuration de base de données typique.
[database]
host=localhost
port=3306
name=myapp_db
user=admin
[cache]
enabled=true
ttl=3600
driver=redisConfiguration PHP
Essayer →Un extrait de php.ini.
; PHP Configuration
[PHP]
memory_limit = 256M
max_execution_time = 30
upload_max_filesize = 64M
[Date]
date.timezone = "America/New_York"Conseils
- Les noms de section sont insensibles à la casse dans la plupart des implémentations.
- Utilisez des guillemets autour des valeurs contenant des caractères spéciaux.
- Les commentaires utilisent traditionnellement ; mais certains analyseurs acceptent aussi #.
- Les clés dupliquées dans la même section peuvent écraser ou créer des tableaux selon l'analyseur.
Comprendre Analyseur de configuration INI
Les fichiers INI sont un format de configuration simple utilisant des sections (entre crochets) et des paires clé-valeur. Malgré l'absence de spécification formelle, le format est largement utilisé depuis les débuts de MS-DOS et Windows. PHP utilise php.ini, Git utilise .gitconfig (style INI), les applications Windows utilisent des fichiers .ini, et de nombreux systèmes hérités reposent sur ce format.
La structure de base regroupe les paires clé=valeur sous des en-têtes [section]. Les valeurs sont généralement des chaînes, bien que certains analyseurs interprètent les nombres et les booléens. Les commentaires utilisent le point-virgule (;) ou le dièse (#). Les valeurs multi-lignes, les sections imbriquées et les séquences d'échappement varient entre les implémentations puisqu'il n'existe pas de norme faisant autorité.
Les fichiers INI comblent le vide entre les formats plats clé-valeur (comme les fichiers .env) et les formats structurés (comme TOML et YAML). Ils fournissent une organisation au niveau des sections sans la complexité des structures de données imbriquées. Pour une configuration d'application simple avec des regroupements logiques, INI reste un choix pratique.
L'absence de standardisation est la principale faiblesse d'INI. Différents analyseurs ne s'accordent pas sur les caractères de commentaire, si les clés sont sensibles à la casse, comment gérer les clés et sections dupliquées, et si les valeurs peuvent s'étendre sur plusieurs lignes. Lors du démarrage d'un nouveau projet, TOML est généralement un meilleur choix car il offre la même organisation basée sur les sections avec une spécification formelle et des types de données plus riches.
TOML a été conçu comme un remplacement moderne d'INI avec une spécification formelle. Il ajoute des types de données natifs (entiers, flottants, booléens, dates, tableaux), des tables imbriquées, des tableaux de tables et des chaînes multi-lignes — des fonctionnalités qu'INI ne possède pas du tout. Pour les nouveaux projets, TOML est le meilleur choix ; INI est principalement pertinent pour la compatibilité avec les fichiers de configuration existants.
La sensibilité à la casse des clés varie selon l'implémentation. Les fonctions INI de Windows sont insensibles à la casse, le configparser de Python est insensible à la casse pour les clés par défaut, le parse_ini_file de PHP est sensible à la casse pour les clés mais insensible à la casse pour les sections, et la configuration Git est insensible à la casse pour les noms de sections et de clés. Vérifiez toujours la documentation de votre analyseur spécifique. La gestion des caractères spéciaux dans les valeurs est tout aussi incohérente — certains analyseurs prennent en charge les valeurs entre guillemets doubles, certains prennent en charge les séquences d'échappement, et certains traitent tout ce qui suit le signe égal comme une valeur littérale. Lorsque des caractères spéciaux sont nécessaires, vérifiez le comportement avec votre analyseur spécifique ou envisagez la migration vers TOML.