синглтоны плохие? 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 не работает, потому что я могу установить любое значение из любого места на любом этапе процесса приложения)

Вопросов:

Это хорошая практика для хранения глобальных настроек, как это. Каковы недостатки этого метода? Может быть, есть гораздо лучший способ сделать это?

Спасибо за ваши ответы

Ответы на вопрос(3)

Ваш ответ на вопрос