die Factory kümmert sich darum, dass die Repositories Singletons bleiben, und sorgt für die Injektion der SQL Connection.
Nur, um sicher zu gehen, du redest von Factory-Methods, oder? Ansonsten wüsste ich nicht, wie du in PHP sicherstellen willst, dass eine Klasse nicht mehrfach erzeugt wird.
Die Alternative wäre eine DI Library, die so parametrierbar ist, dass sie für bestimmte Interfaces den Singleton automatisch bildet und automatisch ein anderes Singleton-Objekt (die Connection) in den Konstruktor injiziert.
Ich verstehe noch nicht wieso du aus Repostiorys oder Datenbank-Verbindungen Singletons machen möchtest? Manche Dinge sind einfach schlechte Singletons, Götter zum Beispiel.