Паттерн гарантирует единственный экземпляр класса в приложении.
class Config {
private static ?self $instance = null;
private function __construct() {}
public static function getInstance(): self {
if (self::$instance === null) {
self::$instance = new self();
}
return self::$instance;
}
}Применять для: глобального конфига, логгера, подключения к БД. Минусы: усложняет тестирование (сложно подменить), скрытая глобальная зависимость. В PHP часто предпочтительнее DI-контейнер.