Да, вы правы, использование санкционированного метода Zend для конфигурации является более сложным, чем определение серии глобальных констант. Преимущества, которые вы получаете:
Нет глобальных коллизий пространства имен
Если вам когда-либо потребуется интегрировать ваше приложение с другим проектом, наличие глобальных констант, представляющих конфигурацию вашего приложения, может вызвать проблемы. Каковы шансы, что у другого проекта есть константа с именем DB_HOST
? Как разработчик, использующий вашу гибридную систему, может определить, какие константы являются конфигурацией вашего приложения по сравнению с интегрированным приложением?
Опираясь на работу других
Итак, у вас есть один файл со всеми вашими значениями конфигурации. Как вы собираетесь развернуть это в разных средах? (производство, постановка и т. д.) Скорее всего, вы умный человек, который может придумать решение, но как другой разработчик, участвующий в вашем проекте, узнает, как это решение работает? Как другие модули в вашем приложении узнают, как читать вашу глобальную конфигурацию?
Zend_Config
уже "решил" многие проблемы. Принимая немного больше сложности и абстракции заранее, вы получаете известный путь вперед и можете тратить больше времени на решение проблем вашего приложения, а не изобретать и поддерживать еще одну систему конфигурации.