آموزش ساخت Artisan Command در لاراول

Artisan یکی از ابزارهای قدرتمند فریم‌ورک لاراول است که امکان اجرای دستورات مختلف را برای توسعه‌دهندگان فراهم می‌کند. ایجاد دستورات سفارشی با استفاده از Artisan می‌تواند به شما در مدیریت پروژه‌ها و اتوماسیون کارها کمک کند. در این مقاله، نحوه ایجاد یک Artisan Command سفارشی را به صورت کامل بررسی خواهیم کرد.

مراحل ساخت دستور سفارشی در Artisan

1. ساخت فایل دستور جدید

برای ایجاد یک دستور جدید، کافی است از دستور زیر استفاده کنید:

php artisan make:command CommandName

این دستور یک فایل جدید در مسیر app/Console/Commands ایجاد می‌کند. نام فایل برابر با نامی است که به جای CommandName وارد کرده‌اید.

2. تنظیمات اولیه فایل دستور

فایل ایجاد شده شامل یک کلاس PHP است که از کلاس پایه Command ارث‌بری می‌کند. بخش‌های اصلی این کلاس عبارتند از:

  • خصوصیت $signature: تعیین قالب دستور و آرگومان‌های آن.
  • خصوصیت $description: توضیح کوتاه درباره عملکرد دستور.
  • متد handle(): منطق اصلی اجرای دستور.

مثال:

<?php 
namespace App\Console\Commands;

use Illuminate\Console\Command;

class HelloWorldCommand extends Command
{
    protected $signature = 'hello:world';
    protected $description = 'یک پیام خوشامدگویی چاپ می‌کند';

    public function handle()
    {
        $this->info('سلام دنیا!');
    }
}

در مثال بالا، یک دستور ساده به نام hello:world تعریف شده که هنگام اجرا پیام "سلام دنیا!" را چاپ می‌کند.

3. ثبت دستور در Kernel

برای استفاده از دستور، باید آن را در فایل app/Console/Kernel.php ثبت کنید:

protected $commands = [
    \App\Console\Commands\HelloWorldCommand::class,
];

این مرحله ضروری است تا لاراول بتواند دستور شما را شناسایی کند.

4. اجرای دستور سفارشی

پس از ثبت، می‌توانید دستور خود را اجرا کنید:

php artisan hello:world

نتیجه اجرای این دستور پیام "سلام دنیا!" خواهد بود.

نکات تکمیلی برای دستورات پیچیده‌تر

اگر بخواهید آرگومان‌ها یا آپشن‌هایی به دستور اضافه کنید، می‌توانید آنها را در $signature تعریف کرده و با متدهای argument() یا option() مقدارشان را دریافت کنید. مثال:

protected $signature = 'greet {name} {--yell}';
public function handle()
{
    $name = $this->argument('name');
    $greeting = "سلام {$name}!";
    if ($this->option('yell')) {
        $greeting = strtoupper($greeting);
    }
    $this->info($greeting);
}

این دستور با آرگومان و آپشن کار می‌کند و خروجی آن بسته به ورودی تغییر خواهد کرد.

جمع‌بندی

ایجاد دستورات سفارشی با Artisan یکی از قابلیت‌های قدرتمند لاراول برای توسعه‌دهندگان است که امکان خودکارسازی وظایف مختلف را فراهم می‌کند. با استفاده از مراحل گفته‌شده، شما می‌توانید دستورات متنوعی طراحی کنید و بهره‌وری پروژه‌های خود را افزایش دهید.