PHP object-oriented advanced design pattern: data access object pattern

巴扎黑
Release: 2023-03-07 20:04:02
Original
1493 people have browsed it

What is the data access object pattern?

The Data Access Object design pattern describes how to create objects that provide transparent access to any data.

Data Access Object Pattern Application Problems and Solutions

For those who have learned both PHP and MySQL, the Data Access Object Design Pattern is a new and exciting concept. This design pattern is intended to solve two specific problems: duplication and data source abstraction.

We should create an object of the data access object design pattern. This data access object encapsulates an intelligent way to create SQL calls, reducing the complexity and duplication of instance creation and update processes, and should be written in such a way that the user of the object will not know the actual table structure and database engine used. In addition, the methods applied by this object should use logical parameters and should handle the creation of SQL statements.

The Data Access Object Pattern has the added benefit of providing a database abstraction layer. Now, the application's main processing code no longer needs to consider the database engine or table relationships. Calling the public methods of such an object will return any data type, regardless of the type required by the underlying SQL.

A good way to manage simplicity in data access object classes is to create parent-child relationships. First, create a basic parent object. This object should be responsible for database connections, abstractly executing queries, and communicating with child objects. When using the Data Access Object design pattern, it is a good idea to start by associating a subclass of a one-to-one relationship with a table in the database. These subclasses have essential information such as table name and primary key. Additionally, a subclass may contain specific public methods that perform queries from the parent class in a way that is meaningful only to the subclass. For example, a subclass named userAddress might contain a getAddreddesByZip() method. Putting this method in the parent DAO class makes no logical sense and will destroy the abstraction that the parent class hopes to achieve.

When dealing with entities that reference specific database information, the best practice is to create a data access object.

<?php 
//数据访问对象模式 
 
//将数据库访问层脱离出来 作为公用的访问接口,方便用户开放,是php中常用的一种设计模式 
 
class BaseDao { 
    private $db; 
     
    public function __construct($config) {  
        $this->db = mysql_connect($config[&#39;user&#39;], $config[&#39;pass&#39;], $config[&#39;host&#39;]); 
        mysql_select_db($config[&#39;database&#39;], $this->db); 
    } 
     
    public function query($sql) { 
        return mysql_query($sql, $this->db); 
    } 
}
Copy after login

Code: Data operation of UserDao user data table, inherits from BaseDao

<?php 
include("UserDao.php"); 
class UserDao extends BaseDao { 
    public function addUser() { 
        $sql = "INSERT INTO user (username) VALUES (&#39;initphp&#39;)"; 
        return $this->query($sql); 
    } 
} 
 
$UserDao = new UserDao; 
$UserDao->addUser();
Copy after login

The above is the detailed content of PHP object-oriented advanced design pattern: data access object pattern. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!