TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #132 887
فصل پنج - Migrations and Database

بخش دوم - Factories


فکتوری‌ها در لاراول ابزاری برای ایجاد سریع و راحت داده‌های نمونه (mock) برای تست و توسعه هستند. با استفاده از فکتوری‌ها، می‌توانید به راحتی رکوردهایی را در پایگاه داده تولید کنید، بدون اینکه نیاز باشد به صورت دستی داده‌ها را وارد کنید.

در تست‌های خودکار، می‌توانید با استفاده از فکتوری‌ها داده‌های نمونه ایجاد کنید تا رفتار اپلیکیشن خود را آزمایش کنید.

ساخت یک فکتوری:
برای ساخت فکتوری، می توانید از دستور زیر استفاده کنید:
php artisan make:factory UserFactory


این دستور یک فکتوری با نام UserFactory برای شما در مسیر database/factories ایجاد می کند.
در فایل فکتوری که ایجاد شده، می‌توانید داده‌های پیش‌فرض را تعریف کنید.

مثال: تعریف یک فکتوری برای مدل User:
class UserFactory extends Factory
{
protected $model = \App\Models\User::class;

public function definition()
{
return [
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail(),
'email_verified_at' => now(),
'password' => bcrypt('password'),
'remember_token' => Str::random(10),
];
}
}

هر فیلد جدول، مقدار پیش‌فرضی در اینجا دارد که به صورت خودکار تولید می‌شود.

استفاده از فکتوری:
برای تولید یک رکورد در پایگاه داده:
User::factory()->create();

این کد یک رکورد تست برای شما ایجاد می کند.

برای تولید چندین رکورد:
User::factory()->count(10)->create();

این کد به تعداد مشخص شده، رکورد تست برای شما ایجاد می کند.

برای ایجاد یک رکورد ولی بدون ذخیره کردن آن:
$user = User::factory()->make();

این کد یک رکورد تست برای شما ایجاد می کند اما در دیتابیس ذخیره نمی کند.

مثال کامل:
فرض کنید یک جدول برای مقالات (Posts) دارید.
class PostFactory extends Factory
{
protected $model = \App\Models\Post::class;

public function definition()
{
return [
'title' => $this->faker->sentence(),
'content' => $this->faker->paragraph(),
'user_id' => \App\Models\User::factory(),
];
}
}


این کد یک جمله رندوم برای title، یک پاراگراف رندوم برای content، و یک کاربر جدید برای user_id ایجاد می کند.

فرض کنید می خواهیم 100 پست تستی ایجاد کنیم:
Post::factory()->count(100)->create();


این فکتوری به سادگی 100 پست تستی برای شما ایجاد خواهد کرد.

فکتوری‌ها ابزاری قدرتمند برای تولید داده‌های تستی و توسعه هستند.
به کمک آن‌ها می‌توانید به‌سرعت داده‌های مرتبط ایجاد کرده و تست‌های خود را ساده‌تر و سریع‌تر انجام دهید.
فکتوری‌ها انعطاف‌پذیر هستند و می‌توانید شرایط مختلف (مانند ایجاد رکوردهای مرتبط) را پیاده‌سازی کنید.

در پست های بعدی به طور کامل به فکتوری ها خواهیم پرداخت.

🔖 #Laravel, #PHP, #فصل_۵, #لاراول

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 7
  • 👍 2
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →