onfigurações globais do aplicativo @php

Li quase todas as perguntas que encontrei no StackOverflow sobre este tópico, mas não consegui encontrar uma resposta diret

Aqui está o meu código:

Application class

<?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
    }
?>

Classe de configurações:

<?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;
    }
}
?>

Eu acesso configurações de qualquer lugar do meu código, como est

<?php
var_dump(Settings::getEnv());
?>

Eu quero acessar Configurações de muitos lugares diferentes. Todos os valores podem ser definidos apenas uma vez e não podem ser substituídos (portanto, o registro com métodos __set não funciona, porque eu posso definir qualquer valor de qualquer lugar em qualquer estágio do processo de aplicação)

Questões

É uma boa prática armazenar configurações globais como esta. Que desvantagens deste método? Talvez haja uma maneira muito melhor de fazer isso?

Obrigado por suas resposta

questionAnswers(3)

yourAnswerToTheQuestion