Целта на Singleton е да ограничи екземплярите на обекта до един и да осигури глобален достъп.
И двете са неща, които не искате или имате нужда.
Ограничаването на вашия екземпляр до един екземпляр е доста безсмислено в PHP, където това ограничение важи само за екземплярите в текущия искане. Ако две заявки попаднат във вашия сайт за микроблогинг едновременно, всяка заявка пак ще има по един екземпляр. Ако искате да сте сигурни, че има само екземпляр, просто не създавайте втора инстанция.
Глобалният достъп също не е нищо, което искате, защото нарушава капсулирането. Ако имате нужда от определен екземпляр във вашите обекти, предайте го чрез инжектиране на зависимост . Това е чисто и поддържано. Той има допълнителното предимство, че ви позволява лесно да обменяте зависимости с други реализации, като например фалшиви класове за вашите единични тестове .
Дори Ерих Гама , един от изобретателите на модела Singleton, поставя под въпрос този модел в днешно време:
Най-добре е да избягвате Singletons.