Symfony-তে ডেটাবেজ কানেকশন কনফিগারেশন খুবই গুরুত্বপূর্ণ, কারণ এটি আপনার অ্যাপ্লিকেশনকে ডাটাবেসের সাথে সংযুক্ত করতে সাহায্য করে। Symfony ডাটাবেস কানেকশন কনফিগারেশনের জন্য Doctrine ORM ব্যবহার করে, যা ডাটাবেস পরিচালনার জন্য একটি শক্তিশালী এবং সহজ উপায়।
এখানে Symfony-তে ডেটাবেজ কানেকশন কনফিগার করার প্রক্রিয়া বর্ণনা করা হলো।
Doctrine ORM ইনস্টলেশন
Symfony-তে Doctrine ORM ব্যবহার করতে প্রথমে আপনাকে এটি ইনস্টল করতে হবে। Doctrine ORM Symfony-তে ডেটাবেস পরিচালনার জন্য ব্যবহৃত হয়।
Doctrine ইনস্টল করতে Composer ব্যবহার করুন:
composer require symfony/orm-pack
এটি Doctrine ORM এবং তার প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করবে, যেমন doctrine/dbal (ডেটাবেস অ্যাবস্ট্রাকশন লেয়ার) এবং doctrine/orm (অবজেক্ট-রিলেশনাল ম্যাপিং)।
ডেটাবেজ কানেকশন কনফিগারেশন
Symfony-তে ডেটাবেজ কানেকশন কনফিগার করার জন্য .env ফাইল বা .env.local ফাইল ব্যবহার করা হয়, যেখানে ডেটাবেসের URL নির্ধারণ করা হয়।
.env ফাইল কনফিগারেশন
- .env ফাইলটি খুলুন: Symfony প্রজেক্টের রুট ডিরেক্টরিতে
.envফাইলটি থাকবে। এটি আপনার ডেটাবেস কনফিগারেশন সংরক্ষণ করার জন্য ব্যবহৃত হয়। ডেটাবেজ URL সেট করুন:
.envফাইলে ডেটাবেজ URL এর মতো কনফিগারেশন যুক্ত করুন।উদাহরণ:
DATABASE_URL="mysql://username:password@127.0.0.1:3306/db_name?serverVersion=5.7"এখানে:
username: ডেটাবেসের ব্যবহারকারীর নাম।password: ডেটাবেসের পাসওয়ার্ড।127.0.0.1: ডাটাবেস সার্ভারের আইপি ঠিকানা (লোকালহোস্ট হলে এটি 127.0.0.1 হবে)।3306: ডেটাবেসের পোর্ট (MySQL-এর জন্য ডিফল্ট পোর্ট 3306)।db_name: ডেটাবেসের নাম।serverVersion: ডেটাবেসের সংস্করণ (যেমন, MySQL 5.7)।
.env.local ফাইল ব্যবহার
প্রোডাকশন পরিবেশে .env ফাইলের পরিবর্তে আপনি .env.local ফাইল ব্যবহার করতে পারেন, যা আপনার লোকাল কনফিগারেশন ধারণ করবে এবং ভার্সন কন্ট্রোল থেকে বাদ পড়বে। .env.local ফাইলে একই ডেটাবেজ URL কনফিগার করতে পারেন।
DATABASE_URL="mysql://username:password@127.0.0.1:3306/db_name?serverVersion=5.7"
Doctrine Configuration ফাইল
Doctrine কনফিগারেশন ডিফল্টভাবে config/packages/doctrine.yaml ফাইলে থাকে। এটি Symfony অ্যাপ্লিকেশনটির ডেটাবেস সংযোগ পরিচালনা করে।
doctrine.yaml কনফিগারেশন উদাহরণ
# config/packages/doctrine.yaml
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
driver: 'pdo_mysql'
server_version: '5.7'
charset: utf8mb4
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
এখানে:
- dbal.url:
%env(resolve:DATABASE_URL)%ব্যবহার করে.envফাইল থেকে ডেটাবেজ URL লোড করা হচ্ছে। - driver: ডেটাবেজের ড্রাইভার (যেমন
pdo_mysqlMySQL জন্য)। - server_version: ডেটাবেসের সংস্করণ, এটি MySQL 5.7 হিসেবে কনফিগার করা হয়েছে।
- charset: ডেটাবেজের ক্যারেক্টার সেট।
ডেটাবেজ তৈরি এবং মাইগ্রেশন
ডেটাবেজ তৈরি করুন: Symfony Doctrine আপনাকে ডেটাবেজ তৈরি করতে সাহায্য করে। নিচের কমান্ড ব্যবহার করুন:
php bin/console doctrine:database:createএটি ডেটাবেজের URL কনফিগারেশন অনুযায়ী ডেটাবেজ তৈরি করবে।
মাইগ্রেশন তৈরি করুন: ডেটাবেসের schema তৈরি করতে Doctrine মাইগ্রেশন ব্যবহার করতে পারেন। প্রথমে মাইগ্রেশন তৈরি করুন:
php bin/console make:migrationএটি একটি নতুন মাইগ্রেশন ফাইল তৈরি করবে, যা ডেটাবেসের স্কিমা পরিবর্তনগুলো সঠিকভাবে পরিচালনা করবে।
মাইগ্রেশন চালান: মাইগ্রেশন প্রয়োগ করতে নিচের কমান্ড ব্যবহার করুন:
php bin/console doctrine:migrations:migrateএটি ডেটাবেসে মাইগ্রেশনগুলি চালাবে এবং নতুন টেবিল বা কলাম তৈরি করবে।
Doctrine ORM ব্যবহার
Doctrine ORM ব্যবহার করে আপনি PHP অবজেক্টের মাধ্যমে ডেটাবেস পরিচালনা করতে পারবেন। উদাহরণস্বরূপ, একটি Product entity তৈরি করা:
// src/Entity/Product.php
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
class Product
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\Column(type: 'string', length: 100)]
private $name;
public function getId(): int
{
return $this->id;
}
public function getName(): string
{
return $this->name;
}
public function setName(string $name): void
{
$this->name = $name;
}
}
এই Product entity তৈরি করার পরে, Doctrine ORM এর মাধ্যমে ডেটাবেসে এটি সংরক্ষণ এবং রিট্রিভ করা যাবে।
সারাংশ
Symfony-তে ডেটাবেজ কানেকশন কনফিগারেশন সহজ এবং স্বয়ংক্রিয়ভাবে পরিচালিত হয়। Doctrine ORM ব্যবহার করে ডেটাবেসের সাথে সংযোগ স্থাপন করা, ডেটা ম্যানিপুলেশন করা এবং মাইগ্রেশন পরিচালনা করা সম্ভব। .env এবং doctrine.yaml ফাইলের মাধ্যমে ডেটাবেজ কনফিগারেশন করা হয় এবং Symfony CLI-এর মাধ্যমে ডেটাবেজ তৈরি ও মাইগ্রেশন কার্যক্রম পরিচালনা করা যায়।
Read more