Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как хранить конфигурацию сайта?
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Как хранить конфигурацию сайта?

Страниц (1): [1]
 

1. morph-x - 12 Ноября, 2011 - 02:31:05 - перейти к сообщению
Как правильнее хранить конфигурацию сайта? Хранить ее в классе Config (поля static) или в отдельном объекте класса Config, или вообще не испоьзовать классы, а хранить конфигурацию в константах (под конфигурацией я имею ввиду данные для соединения с БД, URL сайта и т.п.). Заранее спасибо!
2. OrmaJever - 12 Ноября, 2011 - 02:37:28 - перейти к сообщению
В ini файлах. Удивлены? http://habrahabr[dot]ru/blogs/php/112402/
3. koras - 12 Ноября, 2011 - 12:21:08 - перейти к сообщению
Опасно, тогда файл будет открыт для чтения, ели не будет закрыт .htaccess
4. OrmaJever - 12 Ноября, 2011 - 12:51:20 - перейти к сообщению
тю... а что мешает нам его закрыть в htaccess?
5. Stierus - 12 Ноября, 2011 - 13:08:54 - перейти к сообщению
Все конфиги (как и 99% кода) должны лежать в папке, закрытой для показа веб-сервером.
6. Мелкий - 12 Ноября, 2011 - 13:45:51 - перейти к сообщению
+ что мешает обозвать конфиг config.ini.php и первой строкой поставить

Парсер ini проигнорирует, как комментарий, а запрашивание файла веб-сервером выведет только ;
7. Stierus - 12 Ноября, 2011 - 13:49:00 - перейти к сообщению
Не, я про другое. У nginx (или что-то другое, не важно), настроено, что он смотрит в папку /var/www/html (например) ... вы делаете папку /var/www/configs и там держите свои конфиги в любом виде, хоть в .ini, хоть в .xml, хоть в .yml (как хранятся у меня) - как угодно
8. Мелкий - 12 Ноября, 2011 - 14:39:53 - перейти к сообщению
Stierus, та я понял, это - самый правильный вариант. Это на чудесный случай, если невозможным оказывается выкинуть выше документ рута.
9. morph-x - 12 Ноября, 2011 - 15:16:02 - перейти к сообщению
Спасибо всем! Решил хранить конфигурацию в INI-файле. В моем случае это безопасно, т.к. у меня все файлы кроме index.php и папки uploads закрыты через .htaccess.
(Добавление)
Хотел еще узнать относительно класса Config. У меня он выглядит так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. abstract class Config {
  4.     protected static $host;
  5.     protected static $username;
  6.     protected static $password;
  7.     protected static $database;
  8.        
  9.     public function __construct() {
  10.         $this->load();
  11.     }
  12.        
  13.     private function load() {
  14.         $config = parse_ini_file("config.ini");
  15.         $this->host = $config["host"];
  16.         $this->username = $config["username"];
  17.         $this->password = $config["password"];
  18.         $this->database = $config["database"];
  19.     }
  20. }
  21.  
  22. ?>

Далее создаются другие классы (напр. Db) на основе него. Правильно ли так делать? И еще хотел спросить, можно ли как-то превратить массив обратно в ini?

 

Powered by ExBB FM 1.0 RC1