Laravel: Database Advanced — Database Seeders and Factories | ডাটাবেস সিডার এবং ফ্যাক্টরি ব্যবহার -Part 13

Abu Sayed
2 min readFeb 21, 2024

--

লারাভেল শিখার জন্য ডাটাবেস সিডার এবং ফ্যাক্টরি ব্যবহার সম্পর্কে বাংলায় বিস্তারিত টিউটোরিয়াল। উদাহরণসহ সহজ ভাষায় ব্যাখ্যা করা হয়েছে। ( Laravel: Database Advanced — Database Seeders and Factories )

Laravel: Database Advanced — Database Seeders and Factories ব্যাখ্যা ও ব্যবহার (উদাহরণসহ)

প্রিয় বন্ধু, ডাটাবেস সিডার এবং ফ্যাক্টরি লারাভেলের দুটি অত্যন্ত গুরুত্বপূর্ণ ফিচার যা ডাটাবেস টেস্ট ডাটা তৈরি করা এবং ম্যানেজ করার জন্য ব্যবহার করা হয়। আসুন আমরা এই দুটি নিয়ে আলোচনা করি -

ডাটাবেস সিডার

ডাটাবেস সিডার ব্যবহার করে আমরা সহজেই টেস্ট ডাটা তৈরি করতে পারি। লারাভেলের ডিফল্ট DatabaseSeeder ক্লাসটিতে নিচের মতো করে কল করে নিজের সিডার ক্লাস রান করানো যায় -

public function run()
{
  $this->call(UsersTableSeeder::class);
$this->call(PostsTableSeeder::class);
}

এখানে UsersTableSeeder এবং PostsTableSeeder দুটি কাস্টম সিডার ক্লাস। যেগুলো ডাটা তৈরি করবে।

একটি সিডার ক্লাসের উদাহরণ:

class UsersTableSeeder extends Seeder
{
  public function run()
{
// Insert user data User::create([
'name' => 'John Doe',
'email' => 'john@example.com',
]);
User::create([
'name' => 'Jane Doe',
'email' => 'jane@example.com',
]);
}}

এভাবে সহজেই টেস্ট ডাটা তৈরি করে ডাটাবেস সিড করা যায়।

ডাটাবেস ফ্যাক্টরি

ফ্যাক্টরি দিয়ে আমরা মডেল ফেক করতে পারি, অর্থাৎ ফেক ডাটা তৈরি করতে পারি।

উদাহরণস্বরূপ User মডেলের জন্য একটি ফ্যাক্টরি লিখতে পারি -

UserFactory::define(User::class, function (Faker $faker) {
return [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
'remember_token' => Str::random(10),
];
});

এবার কোনো সিডারে এই ফ্যাক্টরি ব্যবহার করতে পারি -

User::factory()->count(50)->create();

এতে ৫০ টি ফেক ইউজার তৈরি হবে। এভাবে ফ্যাক্টরি দিয়ে সহজেই টেস্ট ডাটা তৈরি করা যায়।

আশা করি লারাভেল ডাটাবেস সিডার এবং ফ্যাক্টরি সম্পর্কে ধারণা পাবেন। ভালো করে শিখুন এবং প্র্যাকটিস করুন।

--

--

Abu Sayed

Bangladeshi Full Stack Web Dev, Sys Admin & DevOps Engineer. Skills: Data analysis, SQL, Kubernetes. Python, PHP & Laravel. Me on: bd.linkedin.com/in/imabusayed