Symfony YAML
Der smarte Weg Konfigurations-Dateien zu erstellen

Martin Brüggemann, 19.06.2009 - 08:00 | 1 Kommentar |  |  Teilen

symfony_yamlJeder Webentiwickler kennt das Problem. Da möchte man nur mal schnell ein kleines PHP-Projekt starten und fragt sich unweigerlich, wie jemand außer einem selbst jemals die Konfiguration in Form eines PHP-Arrays verstehen soll. Bei yeebase media produzieren wir zum Beispiel die t3n-Heft-CD mit einem kleinen PHP-Script - basierend auf einer riesigen PHP-Array-Konfiguration, die viele Mitarbeiter gerne lieber gestern als morgen gegen eine schlanke Text-Datei ersetzt sehen würden.

Eine Alternative zur Definition von Konfigurations-Optionen in nativem PHP bietet das minimalistische yaml-Format. Dieses wird zum Beispiel vom PHP-Framework Symfony standardmäßig genutzt. Mit der PHP-Klasse sfYaml steht der YAML-Parser aus Symfony nun auch für eigene Entwicklungen zur Verfügung.

Vorher

Definition der Konfiguration mit PHP (config.php):

$config = array('testuser' => array('name' => 'gerd', 'pass' => 'bier'));

Die Datei config.php muss mit dem PHP-Befehl include oder require geladen werden:

include_once('config.php');

Nacher

Definition der Konfigurationsoptionen mit yaml (config.yml):

testuser:
  name: gerd
  pass: bier

Die yaml-Datei kann dann mit der Klasse Symfony-YAML auf einfache Weise eingelesen werden und steht dann ebenfalls der PHP-Anwendung als normales Array zur Verfügung:

include_once('sfYaml/sfYamlParser.php');
$yaml = new sfYamlParser();
$config = $yaml->parse(file_get_contents('/config.yml'));

Fazit

Mit der Verwendung des yaml-Formats muss man zwar mindestens zwei Zeilen mehr Code investieren, kann dafür aber auch unversierteren Nutzern die Änderung von config-Dateien ermöglichen. Aber Achtung: Bei der Definition von yaml-Dateien muss man genau auf Leertasten achten, da diese vom yaml-Parser interpretiert werden!

Aktuelle News:

Eine Antwort zu “Symfony YAML: Der smarte Weg Konfigurations-Dateien zu erstellen”

  1. #1 Sacha Vorbeck

    das sollte die neue Konfigurationssprache für TYPO3 werden. In Kombination mit so etwas wie drush für TYPO3 sicher eine schöne Sache.