آموزش ساخت 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 یکی از قابلیتهای قدرتمند لاراول برای توسعهدهندگان است که امکان خودکارسازی وظایف مختلف را فراهم میکند. با استفاده از مراحل گفتهشده، شما میتوانید دستورات متنوعی طراحی کنید و بهرهوری پروژههای خود را افزایش دهید.