Как вы храните конфиги?

grigori

( ͡° ͜ʖ ͡°)
Команда форума
AmdY
>зачем используют статические классы, если можно константы
у меня пути "собираются" в статических полях при инициации классса
 

Splurov

Новичок
fixxxer, это же бага кэшера, сообщил разработчикам и используешь другой :)
 

AmdY

Пью пиво
Команда форума
Splurov
зачем другой, можно сразу язык сменить, чтобы не нужно было пользоваться кэшером или профессию.
 

Splurov

Новичок
AmdY, кэшер и язык это не одно и то же, согласись? Сменить кэшер несравнимо проще, даже если используешь его в скриптах.
 

rsv

Новичок
свои 5 копеек:
конфиг один и он примерно такой
db_defs_inc.php
<?
define("DBName","blablabla");
define("HostName","megagost");
define("UserName","user");
define("Password","password");
?>
плюс еще есть автогенерируемый из бд файл с константами для прав
rights_inc.php
<?#This file is auto generated. Do not edit this file!!!
define("RIGTH_TO_DELETE_ALL","176");
define("RIGTH_TO_VIEW_ALL","95");
?>
остальное в бд
 

Alexandre

PHPПенсионер
все зависит от задачи

большие конфиги я храню в XML
но прогоняю его через парсер (один раз) и получаю РНР-массив аля то, что написал triumvirat

сложные конфиги трудновоспринимаемы в РНР-виде
 

Lightning

Трудоголик
Если честно не думал, что кто-то в PHP хранит конфиги в ini-файлах =) В Java можно и в XML хранить, но в PHP...
Основной конфиг храню PHP-файле. Некоторые настройки храняться в базе, но кешируются.
с акселераторами это не всегда проходит

я уже не помню, apc это был или xcache, но тупил я долго =) с тех пор так не делаю
Этот баг вроде как пофиксили...

-~{}~ 03.06.09 19:13:

сложные конфиги трудновоспринимаемы в РНР-виде
Можно сделать прогу для клепания сложных конфигов через web-интерфейс.
 

findnext

Новичок
ini хороши тем, что удобны для чтения как для пхп, так и для других системных языков программирования, когда разработка ведётся на нескольких языках.
 

Alexandre

PHPПенсионер
а зачем их тогда изначально в xml хранить?
написано постом выше:
сложные конфиги трудновоспринимаемы в РНР-виде
Отлично все воспринимается, достаточно делать форматирование
я бы так не сказал, но возможно тебе виднее
думаю - это идеалогический спор
кто-то предпочитает хранить конфиги в ini, с-style или json
все зависит от потребностей и сложности конфига

где есть вложенность уровня более 2, то ini стиль уже не катит
а с использованием php-array стиля - не очень-то и наглядно
особенно если много данных
 

Black Raven

Новичок
Автор оригинала: Alexandre
где есть вложенность уровня более 2, то ini стиль уже не катит
а с использованием php-array стиля - не очень-то и наглядно
особенно если много данных
yml гораздо приятней по сравнению с php, xml и ini.
 

fixxxer

К.О.
Партнер клуба
в php оптимально. просто по принципу бритвы оккама.

php это ж вам не джава, читать конфиг надо на каждый запрос. синтаксический парсинг - операция достаточно дорогая (особенно если это достаточно сложный язык разметки типа xml, но и ini надо как минимум прочитать и пропарсить). php код же прекрасно ляжет в кэш акселератора, будучи уже скомпиленным в байткод. потому если и делать конфиги в ином формате, то если вопрос производительности беспокоит, рано или поздно придется писать компилятор из этого формата в native php. получится смарти для конфигов гыгы.
 

Baranov_Dron

Новичок
Автор оригинала: Farsh
Использую YAML, очень удобно и просто :)
http://code.google.com/p/spyc/
Тоже использую yaml.
Использую как в симфони и доктрине, так и в несимфонивских проектах используя либу http://components.symfony-project.org/yaml/ которая как бы "вырвана" из фреймворка симвфони, и может использоваться одна.
 

Alexandre

PHPПенсионер
Там, где вложенность получается более 2, обычно создаётся ещё один конфиг
а потом езе один конфиг... и так будем до опупения плодить конфинг?
Для приложения должно быть достаточно одного конфига
читать конфиг надо на каждый запрос. синтаксический парсинг - операция достаточно дорогая (особенно если это достаточно сложный язык разметки типа xml, но и ini надо как минимум прочитать и пропарсить
в моем посте выше было сказано, что конфиг парсится один раз при генерации в array-style, сохраняется и каждый раз инклудится уже array-style. Быстро - надежно - красиво.
 

Lightning

Трудоголик
Alexandre
При таком подходе каждый раз нужно проверять не изменился ли конфиг.
Кроме того, получается, что конфиг переводиться из xml в PHP код, а потом из PHP кода интерпретатор переводит в байт-код и сохраняет в кеше акселератора. Куча ненужной работы. Почему не сохранить конфиг в кеше самому, сразу после того, как распарсил из XML?
 
Сверху