نمونه اسکریپت ایجاد عملیات CRUD با استفاده از رویکرد PHP OOP و پایگاه داده SQLite3


در دنیای برنامه‌نویسی وب، عملیات CRUD (Create، Read، Update، Delete) پایه‌ترین و حیاتی‌ترین عملیات هستند که هر برنامه تحت وب باید بتواند به آن‌ها دسترسی داشته باشد. این عملیات، اساس مدیریت داده‌ها در هر سیستم است و نقش اصلی در ارتباط با پایگاه داده‌ها دارند. حال، وقتی که بخواهیم این عملیات را در یک پروژه پیاده‌سازی کنیم، استفاده از رویکرد شی‌گرایی در PHP، یعنی PHP OOP (Object-Oriented Programming)، بهترین گزینه است. چرا که این رویکرد، ساختارمند، قابل توسعه و نگهداری آسان‌تر است.
در این مقاله، قصد داریم یک نمونه اسکریپت کامل و جامع برای انجام عملیات CRUD با استفاده از PHP OOP و پایگاه داده SQLite3 ارائه دهیم. SQLite، یک سیستم مدیریت پایگاه داده سبک و فشرده است که به صورت فایل در سیستم قرار می‌گیرد و نیاز به نصب و تنظیمات پیچیده ندارد. این ویژگی‌ها آن را برای پروژه‌های کوچک و متوسط بسیار مناسب می‌سازد.

چرا از PHP OOP و SQLite3 استفاده کنیم؟




پاسخ این سوال، چند وجهی است. ابتدا، رویکرد شی‌گرایی در PHP، امکان سازماندهی بهتر کد، قابلیت استفاده مجدد، توسعه آسان و کاهش خطاها را فراهم می‌کند. با استفاده از کلاس‌ها و اشیاء، می‌توان عملیات مختلف را در قالب متدهای جداگانه تعریف کرد، که خوانایی و نگهداری کد را بهبود می‌بخشد. از طرف دیگر، SQLite، با ساختار فایل‌محور خود، برای پروژه‌هایی که نیاز به بانک اطلاعاتی سبک دارند، عالی است؛ چون نیاز به نصب سرور پایگاه داده ندارد و عملیات‌های پایه بسیار سریع انجام می‌شود.

ساختار کلی پروژه




در این نمونه، ما چند بخش اصلی داریم:
  1. کلاس پایگاه داده: که وظیفه برقراری اتصال با پایگاه داده و اجرای عملیات‌های پایه را دارد.

  1. کلاس مدل: که نمایانگر داده‌های موردنظر است، مثلاً یک "کاربر" یا "مقاله".

  1. کلاس کنترل: که عملیات CRUD را مدیریت می‌کند.

  1. صفحات نمایشی: برای نمایش فرم‌ها و لیست داده‌ها.
    این ساختار، باعث می‌شود کد ما قابل فهم‌تر، مرتب‌تر و قابل توسعه باشد.

    مرحله اول: ساخت پایگاه داده SQLite




در ابتدا، باید فایل پایگاه داده ایجاد کنیم و جدول موردنظر را تعریف کنیم. فرض کنیم ما یک جدول به نام `users` داریم که اطلاعات کاربران را نگهداری می‌کند. ساختار این جدول شامل شناسه، نام، ایمیل و سن است.
sql  

CREATE TABLE IF NOT EXISTS users (

id INTEGER PRIMARY KEY AUTOINCREMENT,

name TEXT NOT NULL,

email TEXT NOT NULL,

age INTEGER NOT NULL

);


این کد را می‌توان در فایل SQL یا از طریق اسکریپت PHP اجرا کرد تا جدول ما آماده باشد.

مرحله دوم: کلاس پایگاه داده




کلاس پایگاه داده، مسئولیت برقراری اتصال و اجرای کوئری‌ها را بر عهده دارد. در نمونه زیر، این کلاس به صورت Singleton طراحی شده است تا تنها یک نمونه از اتصال ساخته شود و مدیریت آن آسان‌تر باشد.
php  

class Database {

private $connection;

private static $instance = null;
private function __construct() {

try {

$this->connection = new SQLite3('database.sqlite');

} catch (Exception $e) {

die('Connection failed: ' . $e->getMessage());

}

}
public static function getInstance() {

if (self::$instance === null) {

self::$instance = new Database();

}

return self::$instance;

}
public function getConnection() {

return $this->connection;

}

}


در اینجا، کلاس `Database` از الگوی Singleton استفاده کرده است تا در سراسر پروژه تنها یک نمونه از اتصال وجود داشته باشد.

مرحله سوم: مدل User




برای مدیریت داده‌های کاربر، یک کلاس مدل تعریف می‌کنیم:
php  

class User {

public $id;

public $name;

public $email;

public $age;
public function __construct($id = null, $name = '', $email = '', $age = 0) {

$this->id = $id;

$this->name = $name;

$this->email = $email;

$this->age = $age;

}

}


این کلاس، نشان‌دهنده‌ی یک رکورد در جدول `users` است و می‌تواند برای ساخت، اصلاح و حذف داده‌ها مورد استفاده قرار گیرد.

مرحله چهارم: کلاس کنترل CRUD




اکنون، باید یک کلاس که عملیات Create، Read، Update و Delete را انجام می‌دهد، بنویسیم. این کلاس، از کلاس پایگاه داده استفاده می‌کند.
php  

class UserRepository {

private $db;
public function __construct() {

$this->db = Database::getInstance()-&g... ← ادامه مطلب در magicfile.ir