Table of Contents
Mô hình dữ liệu Mapper là một kỹ thuật thiết kế được sử dụng trong phát triển phần mềm, đặc biệt là trong ứng dụng PHP, để tách logic kinh doanh khỏi tính kiên trì dữ liệu. Sự khác biệt này cải thiện khả năng duy trì mã, kiểm tra khả năng và khả năng xác suất bằng cách cô lập dữ liệu được lưu trữ và lấy từ các quy tắc kinh doanh cốt lõi.
Hiểu mẫu bản đồ dữ liệu
Ý tưởng chính của mô hình dữ liệu Mapper là sử dụng một lớp được dành riêng gọi là dữ liệu Mapper- để chuyển dữ liệu giữa các đối tượng và cơ sở dữ liệu mà không cần biết chi tiết cơ sở dữ liệu. Cách tiếp cận này tương phản với mẫu ghi, nơi mà đối tượng tự xử lý hoạt động cơ sở dữ liệu.
Lợi ích của việc dùng mẫu dữ liệu
- Thực hiện ) tách logic kinh doanh khỏi mã truy cập dữ liệu.
- Khả năng kinh doanh: có thể được kiểm tra riêng lẻ của cơ sở dữ liệu.
- Khả năng đọc: thay đổi trong cơ sở dữ liệu hoặc phương pháp lưu trữ cần thiết sửa đổi tối thiểu để hợp lý kinh doanh.
- Khả năng duy trì: xóa bỏ những mối quan tâm đơn giản hóa quản lý mã lệnh.
Thi hành bản đồ dữ liệu trong PHP
Thi hành mô hình dữ liệu Mapper bao gồm việc tạo ra ba thành phần chính:
- Đối tượng thuộc về người dùng: Hiển thị các thực thể kinh doanh.
- Lớp bản đồ:[FLT: 1] xử lý dữ liệu truyền giữa các đối tượng và cơ sở dữ liệu.
- Lớp cơ sở dữ liệu: Kết nối thực sự và truy vấn.
Ví dụ: Thực thể người dùng
Giả sử chúng ta có một lớp người dùng đại diện cho một người dùng trong ứng dụng của chúng tôi:
class User {
public $id;
public $name;
public $email;
public function __construct($id = null, $name = '', $email = '') {
$this->id = $id;
$this->name = $name;
$this->email = $email;
}
}
Tạo lớp bản đồ dữ liệu
Bản đồ dữ liệu cho lớp người dùng quản lý tương tác cơ sở dữ liệu:
class UserMapper {
protected $pdo;
public function __construct(PDO $pdo) {
$this->pdo = $pdo;
}
public function findById($id) {
$stmt = $this->pdo->prepare('SELECT * FROM users WHERE id = :id');
$stmt->execute([':id' => $id]);
$row = $stmt->fetch();
if ($row) {
return new User($row['id'], $row['name'], $row['email']);
}
return null;
}
public function save(User $user) {
if ($user->id) {
$stmt = $this->pdo->prepare('UPDATE users SET name = :name, email = :email WHERE id = :id');
$stmt->execute([
':name' => $user->name,
':email' => $user->email,
':id' => $user->id
]);
} else {
$stmt = $this->pdo->prepare('INSERT INTO users (name, email) VALUES (:name, :email)');
$stmt->execute([
':name' => $user->name,
':email' => $user->email
]);
$user->id = $this->pdo->lastInsertId();
}
}
}
Kết luận
Thao tác này giúp tạo một cấu trúc sạch bằng cách phân tích logic doanh nghiệp từ dữ liệu. Cách tiếp cận này không chỉ làm cho mã của bạn có khả năng duy trì hơn mà còn tạo điều kiện cho việc thử nghiệm và sửa đổi tương lai, bảo đảm ứng dụng của bạn vẫn còn hiệu lực và linh hoạt.