sql >> Base de Datos >  >> RDS >> Mysql

Conexión de base de datos php singleton, ¿es este código una mala práctica?

Singletons son malas noticias.

  • Introducen el estado global en un programa. La mayoría de los programadores deberían estar familiarizados con por qué el estado global es malo.
  • Introducen un estrecho acoplamiento entre el singleton y cualquier clase que lo use. Esto significa que no puede reutilizar las clases en cuestión sin reutilizar también el singleton.
  • Hacen que las pruebas unitarias de las clases que dependen del singleton sean problemáticas porque no se puede reemplazar fácilmente el singleton con un simulacro.
  • Promueven un estilo de codificación donde las clases intentan resolver sus propias dependencias. Esto es malo porque puede reducir la claridad con respecto a las dependencias que tiene la clase.
  • PHP tiene una arquitectura Share Nothing, lo que significa que los singletons de PHP no son realmente singletons en absoluto, puede haber varias instancias vivas en cualquier momento (una por solicitud abierta).
  • ¿Qué sucede si descubre repentinamente en una fecha posterior que realmente necesita más de uno de los recursos que proporciona el singleton? Es un escenario más común de lo que piensas

Es mejor mirar en cambio, ya que resuelve los problemas anteriores.