مدیریت پایگاهداده با Doctrine: راهنمای جامع
Doctrine یکی از قدرتمندترین ابزارهای ORM (Object-Relational Mapping) در دنیای PHP است که امکان مدیریت آسان و بهینه پایگاهداده را فراهم میکند. این ابزار به شما اجازه میدهد بدون نیاز به نوشتن مستقیم کدهای SQL، دادههای برنامه خود را به شکلی شیءگرا مدیریت کنید.
چرا Doctrine؟
استفاده از Doctrine به شما کمک میکند:
- کاهش پیچیدگی در تعامل با پایگاهداده.
- افزایش خوانایی و نگهداری کدها.
- انعطافپذیری بالا در تغییرات ساختاری پایگاهداده.
نصب Doctrine
برای نصب Doctrine، ابتدا باید Composer را روی سیستم خود داشته باشید. سپس دستور زیر را اجرا کنید:
composer require doctrine/orm
تنظیمات اولیه
پس از نصب، باید تنظیمات اتصال به پایگاهداده را انجام دهید. نمونهای از فایل bootstrap.php
:
<?php
use Doctrine\ORM\Tools\Setup;
use Doctrine\ORM\EntityManager;
require_once "vendor/autoload.php";
$isDevMode = true;
$config = Setup::createAnnotationMetadataConfiguration(["src"], $isDevMode);
$conn = [
'dbname' => 'test_db',
'user' => 'root',
'password' => '',
'host' => '127.0.0.1',
'driver' => 'pdo_mysql',
];
$entityManager = EntityManager::create($conn, $config);
تعریف Entity
Entityها کلاسهایی هستند که نشاندهنده جداول پایگاهداده هستند. برای مثال:
<?php
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity
* @ORM\Table(name="users")
*/
class User {
/** @ORM\Id @ORM\GeneratedValue @ORM\Column(type="integer") */
private $id;
/** @ORM\Column(type="string") */
private $name;
/** @ORM\Column(type="string") */
private $email;
// Getters and Setters...
}
عملیات CRUD
با استفاده از EntityManager، میتوانید عملیات ایجاد، خواندن، بروزرسانی و حذف (CRUD) را انجام دهید:
- Create:
<?php
$user = new User();
$user->setName("John Doe");
$user->setEmail("john.doe@example.com");
$entityManager->persist($user);
$entityManager->flush();
- Read:
<?php
$userRepository = $entityManager->getRepository(User::class);
$user = $userRepository->find(1); // Find by ID
- Update:
<?php
$user->setName("Jane Doe");
$entityManager->flush();
- Delete:
<?php
$entityManager->remove($user);
$entityManager->flush();
نتیجهگیری
Doctrine ابزاری بسیار کاربردی برای مدیریت پایگاهداده در پروژههای PHP است که علاوه بر کاهش پیچیدگیها، توسعه سریعتر و قابل نگهداریتر برنامهها را ممکن میکند. اگر تا کنون از این ابزار استفاده نکردهاید، پیشنهاد میکنیم آن را امتحان کنید.