Generell bevorzuge ich .ini
oder XML-Konfigurationsdateien. In größeren Systemen muss häufig eine andere Person als der Entwickler einen Konfigurationswert ändern, möglicherweise einen DBA oder einen Systemadministrator. Die meisten DBAs und Sysadmins, die ich kenne, hätten keine Probleme beim Navigieren durch ein einfaches PHP-Skript, aber ich würde es vorziehen, wenn sie es nicht tun würden. Ein kleiner Fehler kann die gesamte Anwendung in vielerlei Hinsicht schädigen.
In kleineren Systemen ist es jedoch äußerst praktisch, PHP-Skripte für die Konfiguration zu verwenden. Ich habe heute mit dem AWS SDK herumgespielt, das auch ein PHP-Skript für die Konfiguration verwendet:
CFCredentials::set(array(
'development' => array(
'key' => 'xxx',
'secret' => 'xxxx',
'default_cache_config' => sys_get_temp_dir(),
'certificate_authority' => true
),
'@default' => 'development'
));
Anstatt a fest zu codieren default_cache_config
, übergebe ich die Systemtemperatur, und das würde in jedem System funktionieren, in dem ich das Skript bereitstelle. Dieses Skript ist ein kleiner Proof of Concept, der an 10 Entwickler weitergegeben wird, und ich möchte, dass sie es so ausführen, wie es ist, ohne viel darüber nachdenken zu müssen. Wenn sich der Prototyp weiterentwickelt, werde ich ihn mit meiner XML-Konfigurationsklasse fest verdrahten (und mich offensichtlich nicht auf den Dateisystem-Cache verlassen).
relate to one well-defined, portable syntax for configuration
Das verstehe ich nicht. INI-Dateien haben auch eine gut definierte und portable Syntax. Jede.conf.php
Datei hat ihre eigene Struktur, die meisten sind Array-basiert, aber das ist nicht so anders als eine INI-Datei.