Quel est le modèle d'objet d'accès aux données ?
Le modèle de conception d'objet d'accès aux données décrit comment créer des objets qui fournissent un accès transparent à toutes les données.
Problèmes et solutions d'application de modèle d'objet d'accès aux données
Pour ceux qui ont appris à la fois PHP et MySQL, le modèle de conception d'objet d'accès aux données est un concept nouveau et passionnant. Ce modèle de conception est destiné à résoudre deux problèmes spécifiques : la duplication et l’abstraction de la source de données.
Nous devrions créer un objet suivant le modèle de conception de l'objet d'accès aux données. Cet objet d'accès aux données encapsule une manière intelligente de créer des appels SQL, réduisant ainsi la complexité et la duplication des processus de création et de mise à jour d'instances, et doit être écrit de telle manière que l'utilisateur de l'objet ne connaît pas la structure de table réelle et le moteur de base de données utilisé. . De plus, les méthodes appliquées par cet objet doivent utiliser des paramètres logiques et gérer la création d'instructions SQL.
Le modèle Data Access Object présente l'avantage supplémentaire de fournir une couche d'abstraction de base de données. Désormais, le code de traitement principal de l'application n'a plus besoin de prendre en compte le moteur de base de données ou les relations entre les tables. L'appel des méthodes publiques d'un tel objet renverra n'importe quel type de données, quel que soit le type requis par le SQL sous-jacent.
Un bon moyen de gérer la simplicité dans les classes d'objets d'accès aux données est de créer des relations parent-enfant. Tout d’abord, créez un objet parent de base. Cet objet doit être responsable des connexions à la base de données, de l'exécution abstraite des requêtes et de la communication avec les objets enfants. Lorsque vous utilisez le modèle de conception Data Access Object, c'est une bonne idée de commencer par associer une sous-classe d'une relation un-à-un avec une table de la base de données. Ces sous-classes contiennent des informations essentielles telles que le nom de la table et la clé primaire. De plus, une sous-classe peut contenir des méthodes publiques spécifiques qui exécutent des requêtes à partir de la classe parent d'une manière significative uniquement pour la sous-classe. Par exemple, une sous-classe nommée userAddress peut contenir une méthode getAddreddesByZip(). Mettre cette méthode dans la classe DAO parent n'a aucun sens logique et détruira l'abstraction que la classe parent espère réaliser.
Lorsqu'il s'agit d'entités qui font référence à des informations de base de données spécifiques, la meilleure pratique consiste à créer un objet d'accès aux données.
<?php //数据访问对象模式 //将数据库访问层脱离出来 作为公用的访问接口,方便用户开放,是php中常用的一种设计模式 class BaseDao { private $db; public function __construct($config) { $this->db = mysql_connect($config['user'], $config['pass'], $config['host']); mysql_select_db($config['database'], $this->db); } public function query($sql) { return mysql_query($sql, $this->db); } }
Code : opération de données de la table de données utilisateur UserDao, hérite de BaseDao
<?php include("UserDao.php"); class UserDao extends BaseDao { public function addUser() { $sql = "INSERT INTO user (username) VALUES ('initphp')"; return $this->query($sql); } } $UserDao = new UserDao; $UserDao->addUser();
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!