Zend Framework содержит анализ конфигурации, который анализирует файлы, записанные в формате ini ( Zend_Config_Ini ), похоже, именно это вы используете.
Файл конфигурации не должен находиться в корне вашего документа, и если он не находится в корне вашего документа, то правила перезаписи не требуются, так как никто не может получить к нему доступ в любом случае.
Формат INI специализирован для обеспечения как иерархии ключей данных конфигурации, так и наследования между разделами данных конфигурации. Иерархии данных конфигурации поддерживаются разделением ключей символом точки или точки (.). Раздел может расширяться или наследоваться от другого раздела, если после имени раздела использовать символ двоеточия (:) и имя раздела, из которого должны быть унаследованы данные.
со страницы Zend_Config_Ini .
Zend Framework использует его, чтобы позволить вам иметь несколько параметров конфигурации, один для подготовки, один для разработки и один для производства. Это также позволяет легко настраивать параметры базы данных для производства и для разработки, имея два совершенно разных параметра. Различные пути, заданные в INI-файле, где находятся включения. Это значительно облегчает перемещение кода из разработки в производство, зная, что сразу все, что является разработкой, будет отключено.
Конечно, это было бы возможно с PHP-скриптом, но это потребовало бы большего разбора различных переменных конфигурации, а также выполнения проверок if / then, тогда как использование parse_ini_file () делает все это автоматически.
В других ответах также уже указывалось, что непрограммистам может потребоваться изменить переменные и / или что-либо на веб-сайте, заданном в качестве переменной конфигурации (например, заголовок сайта, который используется в макете сайта). INI-файлы легко понять и прочитать даже для тех, кто никогда не программировал раньше.
Пример с сайта, над которым я сейчас работаю:
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH "/../library"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
resources.frontController.controllerDirectory = APPLICATION_PATH "/controllers"
resources.layout.layoutPath = APPLICATION_PATH "/layouts/scripts"
resources.db.adapter = "PDO_SQLITE"
resources.db.params.dbname = APPLICATION_PATH "/../data/db/users.db"
resources.view[] =
[staging : production]
[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.db.params.dbname = APPLICATION_PATH "/../data/db/users-testing.db"
[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.db.params.dbname = APPLICATION_PATH "/../data/db/users-dev.db
Это позволяет чрезвычайно легко иметь несколько наборов данных для различных сред, в которых может выполняться код.