синглтоны плохие? 2 разные конфигурации одновременно? никогда не слышал ничего подобного :) Я могу обсудить, однако, использование магических методов (которые они вообще ничего не "засоряют"). но первые два утверждения ... я не вижу никаких веских аргументов для вас двоих, чтобы оправдать их.
читал почти все вопросы, которые я нашел в StackOverflow по этой теме, но не смог найти прямой ответ.
Вот мой код:
Класс приложения
<?php
class Application extends Settings {
public function __construct($env, $cacheDir, $configFile) {
self::$_env = $env;
self::$_cacheDir = $cacheDir;
self::$_config = $this->loadConfig($configFile) // reads configs from xml file into Config object
}
// other methods
}
?>
Настройки класса:
<?php
class Settings {
protected static $_env = null;
protected static $_cacheDir = null;
protected static $_config = null;
public static function getEnv() {
return self::$_env;
}
public static function getCacheDir() {
return self::$_cacheDir;
}
public static function getConfig() {
return self::$_config;
}
}
?>
Я получаю доступ к настройкам из любого места в моем коде, как это:
<?php
var_dump(Settings::getEnv());
?>
Я хочу получить доступ к настройкам из разных мест. Все значения могут быть установлены только один раз и не могут быть перезаписаны (поэтому реестр с методами __set не работает, потому что я могу установить любое значение из любого места на любом этапе процесса приложения)
Вопросов:
Это хорошая практика для хранения глобальных настроек, как это. Каковы недостатки этого метода? Может быть, есть гораздо лучший способ сделать это?
Спасибо за ваши ответы