Взагалі, я віддаю перевагу .ini
файлам конфігурації XML. У великих системах часто комусь, крім розробника, потрібно буде змінити значення конфігурації, можливо, DBA або sysadmin. Більшість DBA та sysadmins, яких я знаю, не мали б проблем із навігацією через простий скрипт PHP, але я вважаю за краще, якщо б вони цього не зробили. Одна невелика помилка там може завдати шкоди всій програмі досить кількома способами.
Але в менших системах надзвичайно зручно використовувати сценарії PHP для налаштування. Я сьогодні грав з AWS SDK , який також використовує сценарій PHP для конфігурації:
CFCredentials::set(array(
'development' => array(
'key' => 'xxx',
'secret' => 'xxxx',
'default_cache_config' => sys_get_temp_dir(),
'certificate_authority' => true
),
'@default' => 'development'
));
Замість жорсткого кодування a default_cache_config
, я передаю системний темп, і це працювало б у кожній системі, в якій я розгортаю сценарій. Цей сценарій є невеликим доказом концепції, яку пройдуть близько 10 розробників, і я хочу, щоб вони запустили її так, як є, без того, щоб багато про що думати. Якщо прототип розвиватиметься, я перекладу його з моїм класом конфігурації XML (і явно не буду покладатися на кеш файлової системи).
relate to one well-defined, portable syntax for configuration
Я цього не розумію. ini-файли також мають чітко визначений і портативний синтаксис. Кожен.conf.php
файл має свою структуру, більшість засновані на масиві, але це не так інакше, ніж файл ini.