Я думаю, вам лучше создать модель базы данных для этих настроек.Затем вы можете запросить базу данных в фильтре, например (см. http://www.symfony -project.org / gentle-введение / 1_4 / ru / 06-Inside-the-Controller-Layer # chapter_06_sub_the_filter_chain ).
Например:
AppSetting:
columns:
id:
type: integer(4)
primary: true
name:
type: string(100)
notnull: true
value:
type: string(100)
Пример кода фильтра:
$settings = Doctrine_Core::getTable('AppSetting')->fetchAll();
foreach ($settings as $setting) {
sfConfig::set($setting->getName(), $setting->getValue());
}
Конечно, это дополнительные издержки для загрузки всех этих настроек при каждом запросе, вы можете просто запросить их, как вынужны они:
Doctrine_Core::getTable('AppSetting')->findOneByName('some_setting')->getValue();
Или вы можете пойти еще дальше и создать для них сериализованный кеш.Но, в конце концов, я бы выбрал решение для базы данных, если вам нужно редактировать их из веб-интерфейса.