Suite au billet sur les fichiers INI, voici une autre méthode pour stocker des données de configuration de façon aussi simple, mais qui offre un gros avantage : YAML permet de sérialiser des données représentées par des tableaux ou des objets de plus de 2 dimensions, et ça c’est quand même bien useful.

YAML (accronyme de YAML Ain’t Markup language), est une façon simple de
représenter des données. Il a de gros avantages par rapport aux fichiers INI ou
XML :

  • leger et user-friedly, contrairement a XML
  • il permet de serialiser beaucoup plus de choses que les fichiers INI, comme
    le xml
  • contrairement aux fichiers ini, il autorise l’utilisation des doubles
    quotes (top relou dans les .ini).

Il se presente sous cette forme par exemple :

# un commentaire et un tableau
users:
  - Toto
  - Titi

# utilisation de booleans
vrai: true
faux: false

# tables associatif multidimensionnel
foo:
  toto:  gentil
  titi:  mechant

Attention à la syntaxe: l’indentation doit être exacte et respectée, ne pas
utiliser de caractères réservés (:, ,, { et }) sans
encadrer la chaine.

Seul inconvenient, il ‘existe pas (encore) de fonction native en php pour le
parser. Il faut donc coder un parseur ou utiliser une librairie tierse comme
celle de Symfony, par exemple, ou SPYC.

Plus d’infos sur Wikipedia ou sur le site officiel yaml.org