Какой смысл от синглтона, когда есть статика?
Ведь в любом случае мы получаем глобальное состояние
А глобальное состояние что? Правильно, плохо. У меня тут недалеко есть один небольшой проектик под iOS где ребята решили повесилиться, и сделали сингелтон с сотней публичных свойств. И вся система работает с этим глобальным состоянием плодя побочные эффекты. Инкапсуляция? не, не слышали.Какой смысл использовать именно singleton?
Сингелтон - это паттерн, который запрещает нам иметь в рамках процесса два инстанса одного объекта. Самый простой способ - использование статики. Сингелтоны полезно, когда у вас, например, два потока, и каждый наровит создать объект, а вам жизненно необходимо что бы объект в системе был один, что бы ошибок небыло.
В PHP, где не не особо популярна идея многопоточного программирования, и процветает "умирающая" модель выполнения, в сингелтонах вообще нет смысла. И используют их потому что... внимание... хотят иметь глобальный доступ к различной фигне, в том числе организация глобального состояния.
Господин Эскобар плохого не скажет)) (осторожно, мат)
Статика - это в принципе опасная штука, ведет к безконтрольной связности проекта. В итоге он превращается в неповоротливый монолит. Опасно даже для небольших проектов.
Синглтон - для крупных проектов может стать узким горлышком, в случае когда инициализация сервиса зависит от контекста выполнения.