Mysql
 sql >> Database >  >> RDS >> Mysql

connessione al database php singleton, questo codice è una cattiva pratica?

I singleton sono una cattiva notizia.

  • Introducono lo stato globale in un programma. La maggior parte dei programmatori dovrebbe avere familiarità con il motivo per cui lo stato globale è negativo.
  • Introducono uno stretto accoppiamento tra il singleton e qualsiasi classe che lo utilizzi. Ciò significa che non puoi riutilizzare le classi in questione senza riutilizzare anche il singleton.
  • Rendono problematico il test unitario delle classi che dipendono dal singleton perché non è possibile sostituire facilmente il singleton con un mock.
  • Incoraggiano uno stile di codifica in cui le classi tentano di risolvere le proprie dipendenze. Questo è negativo perché può ridurre la chiarezza su quali dipendenze ha la classe.
  • PHP ha un'architettura Share Nothing, il che significa che i singleton PHP non sono affatto singleton, possono esserci più istanze attive in qualsiasi momento (una per richiesta aperta).
  • Cosa succede se all'improvviso scopri in un secondo momento che hai effettivamente bisogno di più di una delle risorse fornite dal singleton? È uno scenario più comune di quanto potresti pensare

Faresti meglio a guardare invece, poiché risolve i problemi di cui sopra.