Вообще говоря, я предпочитаю .ini
или XML-файлы конфигурации. В более крупных системах часто кому-то, кроме разработчика, необходимо изменить значение конфигурации, возможно, администратора баз данных или системного администратора. У большинства администраторов баз данных и системных администраторов, которых я знаю, не было бы проблем с навигацией по простому сценарию 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'
));
Вместо жесткого кодирования default_cache_config
я передаю системную температуру, и это будет работать в каждой системе, в которой я развертываю сценарий. Этот сценарий является небольшим подтверждением концепции, которую передадут около 10 разработчиков, и я хочу, чтобы они запустили его как есть, не задумываясь. Если прототип будет развиваться, я буду связывать его с моим классом конфигурации XML (и, очевидно, не буду полагаться на кэш файловой системы).
relate to one well-defined, portable syntax for configuration
Я не понимаю этого. INI-файлы также имеют четко определенный и переносимый синтаксис. Каждый.conf.php
файл имеет свою собственную структуру, большинство основано на массивах, но это не так сильно отличается от INI-файла.