الگوی Data Mapper یک تکنیک طراحی است که در توسعه نرم افزار به ویژه در برنامه های PHP استفاده می شود تا منطق کسب و کار را از پایداری داده جدا کند.این جدایی قابلیت نگهداری کد، قابلیت تست و مقیاس پذیری را با جدا کردن اینکه چگونه داده ها ذخیره و بازیابی شده از قوانین اصلی کسب و کار بهبود می بخشد، بهبود می بخشد.

درک الگوی نقشه برداری داده ها

ایده اصلی الگوی Data Mapper استفاده از یک لایه اختصاصی است که به نام Data Mapper نامیده می شود – انتقال داده ها بین اشیاء و یک پایگاه داده بدون نیاز به دانستن در مورد جزئیات پایگاه داده.این رویکرد با الگوی رکورد فعال، که در آن اشیاء خود عملیات پایگاه داده را اداره می کنند.

مزایای استفاده از الگوی Data Mapper

  • توسعه: منطق کسب و کار را از کد دسترسی داده جدا می کند.
  • آزمون پذیری: منطق کسب و کار می تواند به طور مستقل از پایگاه داده آزمایش شود.
  • تغییر در طرح پایگاه داده یا روش های ذخیره سازی نیاز به تغییرات حداقل در منطق کسب و کار.
  • قابلیت نگهداری: جداسازی صریح از نگرانی ها مدیریت کد را ساده می کند.

پیاده سازی نقشه داده ها در PHP

پیاده سازی الگوی نقشه برداری داده شامل ایجاد سه جزء اصلی است:

  • [در این باره]: [۱] [۱۰] [۱] [۱] [۱] [۱] [۱] [۱] [۱] [۳] [۱] [۱] [۱] [۱] [۳] [۳] [۱] [۱] [۳] [۱] [۳] [۱] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [
  • کلاس های نقشه برداری داده: انتقال داده بین اشیاء و پایگاه داده را مدیریت کنید.
  • لایه پایگاه داده: اتصال پایگاه داده واقعی و پرس و جو.

مثال: User Entity

فرض کنید ما یک کلاس کاربری داریم که یک کاربر را در برنامه ما نمایندگی می کند:

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

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

ایجاد کلاس Data Mapper

نقشه برداری داده ها برای کلاس کاربر، تعاملات پایگاه داده را مدیریت می کند:

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

نتیجه گیری

پیاده سازی الگوی نقشه برداری داده در PHP به ایجاد یک معماری تمیز با تجزیه و تحلیل منطق کسب و کار از ذخیره سازی داده ها کمک می کند، این رویکرد نه تنها کد شما را قابل نگهداری تر می کند بلکه آزمایش ها و تغییرات آینده را تسهیل می کند، اطمینان حاصل می کند که برنامه شما قوی و سازگار است.