Хранение начальных конфигурационных настроек

Yaponchick

Новичок
Хранение начальных конфигурационных настроек

Здраствуйте.

Вот пытаюсь придумать\найти идеальный способ хранения настроек. Самый оптимальный до этого, был *.ini, но его практически не возможно проверять на ошибки(parse_ini_file жёстко тупит). Хотелось бы услышать от вас, способы хранения начальных настроек, т.е. подключение к базе, дополнительные директивы, такие как полный путь и т.д.

Заранее спасибо.
 

Yaponchick

Новичок
Гравицапа
config.ini
Код:
[MAIN]login=123
passwo[]rd=321
db=123
при ошибке во второй строке, parse_ini_file вернет 1ую строку, а не FALSE, + он напечает в браузер варнинг =)

wizard
нет =)
 

Alexandre

PHPПенсионер
Вот пытаюсь придумать\найти идеальный способ хранения настроек
как ваиант XML
1) парсинг на валидность
2) парсинг на проверку заполнения
3) XSLT преобразование (предкомпиляция ини) в myini.php файл.
лично меня всем устраивает, и наглядно и быстро.
 

ksnk

прохожий
Yaponchick
Я правильно понимаю, что этот config.ini делается пользователем? Ну дык ini файл имеет простую структуру, которую можно пропарсить регулярными выражениями. Уж для проверки на валидность должно бы хватить ...
 

whirlwind

TDD infected, paranoid
Yaponchick да напиши сам парсилку ini-шек. Там кода на полторы страницы максимум.
 

Yaponchick

Новичок
wizard
Убогость.

Alexandre
Хороший вариант, только боюсь на нагрузку, ведь такая штука будет грузиться при каждом заходе. Я ошибаюсь ?

ksnk
И да и нет, по умолчанию он лежит за ДОК_РУТ, настройки там для подключения к мускули, php.ini директивы, статистика(да\нет) и т.д. Так что аудитория этого файла большая и разная =)

whirlwind
Была идея, но сначала решил спросить.
 

Skubent

Новичок
А чем "убог" вариант ?
Код:
<?php
$CFG['database']['user'] = 'user';
$CFG['database']['pass'] = 'pass';
...
$CFG['sometype']['somevar'] = 'value';
...
?>

<?php
require_once('somepath/somefile.php');
?>
 

Yaponchick

Новичок
Skubent
Ну не нравится и всё =Р
Так как, получается что можно вообще PMA конфиг грузить.
+ Простые нормальные люди(не программисты), врятли не запорят конфиг =)
 

Skubent

Новичок
Простые нормальные люди и конфигурацию БД запороть могут.
А так, получается, что "мне гвозди молотком забивать не нравится, я микроскопом лучше"
 

whirlwind

TDD infected, paranoid
Yaponchick давным давно делал одну прогу системную - конфиги лежали в виде shell скриптов. Была куча файлов с этими конфигами - надоело. Объединил в один хотел что бы было похоже на самбовский конфиг ну там секции+глобальная, контроль синтаксиса и все такое. Делов - на полчаса писания левой ногой. Если уж совсем лень, см. здесь http://prolib.ru/admin/util/backup/ функция load_conf . Там же найдешь пример конфигов. Она на перле, но не думаю что это для тебя проблема ;)
 

denver

?>Скриптер
Автор оригинала: Yaponchick
Alexandre
Хороший вариант, только боюсь на нагрузку, ведь такая штука будет грузиться при каждом заходе. Я ошибаюсь ?
достаточно только когда конфиг обновится.
 

Alexandre

PHPПенсионер
Alexandre
Хороший вариант, только боюсь на нагрузку, ведь такая штука будет грузиться при каждом заходе. Я ошибаюсь ?
YaponchickОшибаешься...
1) есть xml + xsl -> php (Array or DEFINE )
2) xml парсится, когда производишь изменения сам, или как правило есть кнопка в админке "Загрузить Конфиг"
3) скрипт при каждом запуске уже инклудит откомпилированный конфиг, т.е ini.php. или п.4
4) можно сделать проверку - если нет файла ini.php, то его откомпилировать, есть варианты...

с нагрузкой как раз все в порядке, я это дело применяю на сайте с Большой нагрузкой... так как грузится сразу ini.php и не загружаются ни какие другие дополнительные файлы. Файловые операции при больших нагрузках - вещь относительно ресурсоемкая, по этому ее желательно свести к минимуму.
 
Сверху