class Config {
private static ?self $instance = null;
private function __construct() {}
public static function getInstance(): self {
self::$instance ??= new self();
return self::$instance;
}
}Singleton — один из наиболее критикуемых паттернов. Он вводит глобальное состояние, усложняет тестирование (трудно заменить на mock), нарушает Dependency Inversion. В современном коде заменяется регистрацией зависимости как singleton в IoC-контейнере.