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


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

مقدمه‌ای بر رویکرد شیء‌گرایی در PHP و پایگاه داده SQLite3




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

طراحی ساختار کلاس‌ها برای عملیات CRUD




در این نمونه، ابتدا یک کلاس پایه برای مدیریت اتصال به پایگاه داده SQLite3 ایجاد می‌کنیم. این کلاس، وظیفه مدیریت اتصال، اجرای کوئری‌ها و برگرداندن نتایج را بر عهده دارد. سپس، یک کلاس دیگر برای مدیریت عملیات CRUD روی یک جدول خاص، مثلا «کاربران» (users) طراحی می‌شود. در ادامه، این کلاس شامل متدهای جداگانه برای ایجاد، خواندن، به‌روزرسانی و حذف داده‌ها است.

پیاده‌سازی کلاس پایگاه داده




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

class Database {

private static $instance = null;

private $connection;
private function __construct() {

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

$this->createTable();

}
public static function getInstance() {

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

self::$instance = new Database();

}

return self::$instance;

}
private function createTable() {

$query = "CREATE TABLE IF NOT EXISTS users (

id INTEGER PRIMARY KEY AUTOINCREMENT,

name TEXT NOT NULL,

email TEXT NOT NULL UNIQUE,

age INTEGER

)";

$this->connection->exec($query);

}
public function getConnection() {

return $this->connection;

}

}


در این کلاس، متد `createTable()` بررسی می‌کند که آیا جدول «کاربران» وجود دارد یا نه؛ و در صورت نیاز، آن را ایجاد می‌کند. این کار، اطمینان می‌دهد که ساختار پایگاه داده قبل از هر عملیات آماده است.

پیاده‌سازی کلاس مدیریت عملیات CRUD




حالا، کلاس دیگری تعریف می‌کنیم که عملیات CRUD روی جدول «کاربران» را مدیریت کند. این کلاس، از کلاس Database ارث‌بری نمی‌کند، بلکه از نمونه Singleton آن بهره می‌برد.
php  

class User {

private $db;
public function __construct() {

$this->db = Database::getInstance()->getConnection();

}
// ایجاد کاربر جدید

public function createUser($name, $email, $age) {

$stmt = $this->db->prepare("INSERT INTO users (name, email, age) VALUES (:name, :email, :age)");

$stmt-&... ← ادامه مطلب در magicfile.ir