Патерн даних - це технологія дизайну, яка використовується в розробці програмного забезпечення, зокрема в додатках PHP, для окремої логіки бізнесу від даних, що зберігаються. Цей розділ покращує збереження коду, тестування та масштабованість, золюючи, як дані зберігаються та отримані від основних правил бізнесу.

Розуміння шаблону даних

Основна ідея шаблону Data Mapper полягає в використанні виділеного шару — званого на сервері даних — перенести дані між об’єктами та базою даних без об’єктів, які необхідно знати про деталі бази даних. Такий підхід контрастує з шаблоном Active Record, де об’єкти самі ручать операції бази даних.

Переваги використання шаблону даних

  • Decoupling: Відокремлює логіку бізнесу з коду доступу даних.
  • Testability: Бізнес логіка може бути протестована незалежно від бази даних.
  • Флексим: Зміни в методах зберігання бази даних, вимагають мінімальних модифікацій до логіки бізнесу.
  • Maintainability: Чітке розділення проблем спрощує управління кодом.

Реалізація карти даних в PHP

Впровадження шаблону Data Mapper передбачає створення трьох основних компонентів:

  • Домен Об'єкти: Представництва суб'єктів господарювання.
  • Data Mapper Classes: передачі даних між об'єктами та базою даних.
  • Database Layer:. Фактичне підключення бази даних та запити.

Приклад: Користувач

Ми пропонуємо вам можливість скористатися послугами Користувача, що представляють Ваше ім’я користувача в нашому додатку:

class User {
 public $id;
 public $name;
 public $email;

 public function __construct($id = null, $name = '', $email = '') {
 $this->id = $id;
 $this->name = $name;
 $this->email = $email;
 }
}

Створення класу графічного інтерфейсу даних

Оператор даних для користувача, що керує взаємодіють базами:

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();
 }
 }
}

Висновок

Впровадження шаблону Data Mapper у PHP дозволяє створювати чисту архітектуру, декомпаляційну логіку даних з зберігання даних. Цей підхід не тільки робить ваш код більш надійним, але й полегшує тестування та майбутні модифікації, забезпечуючи вашу програму залишається надійним і адаптивним.