Оцените идею: сделать "главный" класс с внешними настройками.

  • Автор темы Автор темы Lisi4ka
  • Дата начала Дата начала

Lisi4ka

Новичок
Оцените идею: сделать "главный" класс с внешними настройками.

Использую в проекте классы.
В классах зачастую приходится использовать переменные, определённые в основных конфигурационных файлах.
Раньше обращался к переменным как $GLOBALS["_CONFIGS"]["run_smiles"], передавал их через конструктор, как то ещё... Сейчас идея возникла, сделать базовый супер-класс, в котором были бы просто записаны внешние переменые:

PHP:
class base{
....
$this->run_smiles = $GLOBALS["my_array"]["run_smiles"];
$this->param = isset(...) ? 0 :  $GLOBALS["my_array"]["param"];
$this->value = 1*10;
// и т.д.
.....
}

и остальные классы просто наследовались бы от него и как результат, в extends классах не нужно было бы "криво" определять переменные как $this->run_smiles = $GLOBALS["my_array"]["run_smiles"];

Ваше мнение?
 
тоже игрался с определениями и в итоге пришёл к тому что для конфигурационных параметров (да и параметров в целом) сделал отдельный клас (и пару функций типа взять переменую, сохранить переменную) и эту редиску везде циплял в конструкторах. в принципе тоже самое )
 
Lisi4ka
$this->run_smiles = $GLOBALS["my_array"]["run_smiles"];
А зачем тебе через глобалс тащить? Пропиши явно, раз уж так. Или ещё лучше - определи константами.
А вообще, имхо - не нужно смешивать. Вытащи в отдельный файл все настройки, определи их как константы и подлючай где нужно.
 
А зачем тебе через глобалс тащить? Пропиши явно, раз уж так.
Иногда данные берутся из хранилища. Иногда-нет.
Тот же $GLOBALS["my_array"]["run_smiles"] является элементом динамически-формируемого массива из БД, прочие элементы которого не нужны в классах.
 
Serguitar
А вообще, имхо - не нужно смешивать. Вытащи в отдельный файл все настройки, определи их как константы и подлючай где нужно.
Вопрос только кто будет читать этот файл, кто будет его парсить, кто будет получать из него значения? Для этого и нужен класс..
Если речь идет о php файле с константами, то это не всегда удобно, часто приходится выносить некоторые вещи в ini или xml
 
Lisi4ka
тебе нужно использовать паттерн Registry насколько я понимаю. С этим в гугл.
 
Сверху