En PHP, l'accès aux bases de données est souvent géré via PDO. Bien que les premières tentatives puissent utiliser des variables globales pour accéder à la base de données, cela est déconseillé. Le modèle Singleton apparaît comme une alternative, mais sa justification reste discutable.
Les singletons visent à garantir une instance de classe unique, mais en PHP, l'utilisation de la mémoire n'est pas une raison impérieuse. De plus, l’hypothèse selon laquelle certains objets ne peuvent exister qu’une seule fois est souvent erronée ; les programmeurs devraient appliquer l'unicité plutôt que de s'appuyer sur des mécanismes de langage.
De plus, l'accès global aux instances au sein d'une seule requête peut sembler souhaitable, mais il introduit un couplage avec la portée globale, entravant les tests unitaires et la maintenabilité. L'injection de dépendances est une alternative plus appropriée pour partager des instances entre plusieurs classes.
Erich Gamma, un inventeur du modèle Singleton, préconise désormais son abandon en raison de son utilisation abusive fréquente comme odeur de conception. . D'autres lectures sur ce sujet incluent :
Si vous n'êtes toujours pas sûr, le diagramme suivant fournit des conseils supplémentaires :
[Image : Diagramme de décision Singleton. Un organigramme qui aide les utilisateurs à décider d'utiliser ou non un singleton en fonction de leur cas d'utilisation et de leurs préférences spécifiques.]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!