La programmation orientée objet met l'accent sur l'encapsulation des données au sein des classes. Cependant, des scénarios surviennent souvent dans lesquels une classe doit interagir avec des ressources externes, comme une base de données. Cet article aborde le défi de l'accès à des variables externes, telles que des objets de base de données, au sein d'une classe, en utilisant une classe de pagination comme exemple.
L'accès direct à un objet de base de données externe depuis une classe peut entraîner des erreurs telles que "Appel à une fonction membre query() sur un non-objet." Cela met en évidence la nécessité d’approches structurées.
Deux méthodes robustes existent pour gérer les dépendances externes :
<code class="language-php">class Paginator { protected $db; public function __construct(DB_MySQL $db) { $this->db = $db; } public function get_records($q) { $x = $this->db->query($q); return $this->db->fetch($x); } }</code>
<code class="language-php">class Paginator { public function get_records($q, DB_MySQL $db) { $x = $db->query($q); return $db->fetch($x); } }</code>
L'injection de dépendances dépasse largement l'utilisation de variables globales :
En employant ces techniques, les développeurs peuvent gérer efficacement les dépendances externes dans leurs programmes orientés objet, ce qui donne lieu à un code plus propre, plus maintenable et testable.
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!