CLI - factory

📄 مستندات فایل CLI - factory

📌 مسیر فایل:

 
/factory

🧩 نوع فایل:

 
#!/usr/bin/env php

فایل قابل اجرا در خط فرمان (CLI) است و باید با دستور php factory ... اجرا شود.


🎯 هدف فایل

این ابزار برای ایجاد سریع کلاس‌های اصلی پروژه فلر طراحی شده است و به توسعه‌دهنده اجازه می‌دهد تا با یک دستور ساده:

  • 📦 مدل (Model)

  • 🧭 کنترلر (Controller)

  • 💾 مایگریشن پایگاه‌داده (Migration)

  • ⚙ اجرای مایگریشن‌ها

را ایجاد یا اجرا کند.


🛠️ دستورات قابل اجرا

دستور توضیح
php factory make:model ClassName ساخت فایل مدل در مسیر Flare/Models
php factory make:controller ClassName ساخت کنترلر در Flare/Controllers
php factory make:migration TableName ایجاد فایل مایگریشن برای ساخت جدول
php factory migrate اجرای تمام فایل‌های مایگریشن موجود

🔍 بررسی عملکرد

1. ورودی از CLI

 
$commands = $argv; array_shift($commands); // حذف نام فایل

دستورات ورودی پردازش می‌شوند.


2. نمایش لوگو و راهنما

در صورتی که هیچ دستور یا آرگومان وارد نشود، یک لوگوی چشمک‌زن ANSI همراه با دستور استفاده نمایش داده می‌شود.


3. ساخت مدل: make:model

php factory make:model User

ایجاد فایل:

 
Flare/Models/User.php

شامل کد پایه‌ی مدل با اتصال به $db.


4. ساخت کنترلر: make:controller

php factory make:controller Home

ایجاد فایل:

Flare/Controllers/HomeController.php

5. ساخت مایگریشن: make:migration

php factory make:migration users

ایجاد فایل با نامی مانند:

Flare/Migrations/2025_07_01_105432_create_users_table.php

با کدی برای ساخت جدول users با فیلدهای عمومی مانند name, email, password و...

💡 این فایل به app/cli-config.php برای تنظیمات $db نیاز دارد.


6. اجرای مایگریشن‌ها: migrate

php factory migrate

تمام فایل‌های موجود در مسیر Flare/Migrations را به ترتیب اجرا می‌کند.


⚠ نکات امنیتی و اجرایی

  • فقط باید از طریق CLI اجرا شود:

 
if (php_sapi_name() !== 'cli') exit("This script must be run from the command line.\n");
  • نام کلاس‌ها و جدول‌ها باید با حروف مجاز و استاندارد باشند.

  • بررسی می‌شود که فایل‌ها تکراری ساخته نشوند.


✅ خروجی‌های موفق

 
✅ Model User created successfully at Flare/Models/User.php ✅ Controller Home created successfully at Flare/Controllers/HomeController.php ✅ Migration created: Flare/Migrations/... ✅ All migrations executed.

🔁 قابل گسترش

شما می‌توانید دستورات بیشتری مانند:

  • make:middleware

  • make:service

  • rollback
    و غیره را نیز در همین فایل اضافه کنید.


🧪 مثال عملی

 
php factory make:model Product php factory make:controller Product php factory make:migration products php factory migrate

🗂 وابستگی‌ها

  • وجود مسیرهای زیر الزامی است:

    • Flare/Models

    • Flare/Controllers

    • Flare/Migrations

  • تعریف متغیر global $db در پروژه (مثلاً در cli-config.php)

  • استفاده از تایم‌استمپ برای نام‌گذاری فایل مایگریشن‌ها