با  Artisan Console  و دستورات جذاب آن در لاراول آشنا شویم

با Artisan Console و دستورات جذاب آن در لاراول آشنا شویم

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

 

همانطور که میدانیم Artisan یک رابط خط فرمان (CLI) در لاراول هست. این ابزار چندین فرمان مفید برای انجام وظایف رایج در طول توسعه، مانند مایگریشن ها پایگاه داده، تولید کد و اجرای تست‌ها را فراهم می‌کند.

در این پست، به بررسی Artisan، نحوه ایجاد و استفاده از دستورات کنسول و ویژگی‌های پیشرفته‌ای مانند تعریف انتظارات ورودی، I/O فرمان، ثبت دستورات، اجرای دستورات، مدیریت سیگنال و رویدادها می‌پردازیم.

 

Artisan Console چیست؟

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

برای لیست کردن تمامی دستورات موجود در Artisan، کافیست دستور زیر را اجرا کنید:

php artisan list

 

ایجاد دستورات کنسول

مرحله 1: تولید یک فرمان

برای ایجاد یک دستور سفارشی در Artisan، از دستور زیر استفاده میشود:

php artisan make:command CustomCommand

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

namespace App\Console\Commands;

use Illuminate\Console\Command;

class CustomCommand extends Command
{
    protected $signature = 'custom:command';
    protected $description = 'Description of the custom command';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        //your code
    }
}

مرحله 2: تعریف انتظارات ورودی

شما می‌توانید انتظارات ورودی برای فرمان خود را با استفاده از ویژگی $signature تعریف کنید. این ویژگی به شما اجازه می‌دهد نام، گزینه‌ها و آرگومان‌هایی که فرمان شما قبول می‌کند را مشخص کنید.

protected $signature = 'custom:command {name} {--age=}';

در مثال بالا، فرمان یک آرگومان name و یک گزینه اختیاری age را انتظار دارد.

مرحله 3: I/O فرمان

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

درخواست ورودی:

$name = $this->ask('What is your name?');

درخواست تایید ورودی:

if ($this->confirm('Do you wish to continue?')) {
    // ادامه دهید
}

نوشتن خروجی:
بصورت زیر نیز میتوانید خروجی مورد نظر خود را بنویسید:

$this->info('Command executed successfully!');
$this->error('Something went wrong!');

مرحله 4: ثبت دستورات

برای در دسترس قرار دادن فرمان خود به Artisan، باید آن را در آرایه commands در فایل app/Console/Kernel.php ثبت کنید:

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

 

مرحله 5: اجرای دستورات

می‌توانید فرمان سفارشی خود را از ترمینال با استفاده از دستور زیر اجرا کنید:

php artisan custom:command {name} --age={age}
//example
php artisan custom:command iman 20

 

مرحله 6: مدیریت سیگنال

دستورات Artisan لاراول می‌توانند سیگنال‌های سیستم، مانند SIGINT را مدیریت کنند. می‌توانید مدیریت سیگنال را با استفاده از متد trapدر فرمان خود اضافه کنید.

$this->trap(SIGINT, function () {
    $this->info('Command interrupted');
});

SIGINT یکی از سیگنال‌های سیستم هست که میتونه به یک فرآیند فرستاده بشه. این سیگنال، که به عنوان "Interrupt Signal" نیز شناخته می‌شود، به طور معمول توسط کاربر از طریق فشردن کلیدهای Ctrl+C در خط فرمان ارسال می‌شود. هنگامی که یک برنامه در حال اجرا SIGINT را دریافت می‌کند، به طور پیش‌فرض، اجرای آن متوقف می‌شود.

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

 

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

نمونه کد کامل یک کامند لاراول:

namespace App\Console\Commands;

use Illuminate\Console\Command;

class GreetUser extends Command
{
    protected $signature = 'greet:user {name} {--age=}';
    protected $description = 'Greet a user with their name and age';

    public function __construct()
    {
        parent::__construct();
    }

    public function handle()
    {
        $name = $this->argument('name');
        $age = $this->option('age');
        $this->info("Hello, $name!");

        if ($age) {
            $this->info("You are $age years old.");
        }

        if ($this->confirm('Do you wish to continue?')) {
            $this->info('Continuing the command...');
        }

        $this->trap(SIGINT, function () {
            $this->info('Command interrupted');
        });

        event(new \App\Events\CustomCommandExecuted($this));
        $this->info('Command executed successfully!');
    }
}

 

نتیجه‌گیری

Artisan یک ابزار قدرتمند است که می‌تواند به طور قابل توجهی بهره‌وری شما به عنوان یک توسعه‌دهنده لاراول را افزایش دهد.

با ایجاد دستورات سفارشی، می‌توانید وظایف تکراری را خودکار کرده و جریان کاری خود را بهبود دهید.

توی این پست با نحوه ایجاد، ثبت و اجرای دستورات Artisan، مدیریت ورودی/خروجی، مدیریت سیگنال‌های سیستم و فعال کردن رویدادها صحبت کردیم.

با این مهارت‌ها، شما می‌توانید از تمام قدرت Artisan در برنامه‌های لاراول خود بهره‌مند شوید.

 

اگر این مطلب برای شما مفید بود یا شما هم نکته ای دارید از بخش نظرات برای ما ارسال کنید


برچسب ها:

لاراول laravel

دسته بندی ها:

لاراول

ارسال نظر

برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *

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

اگر نظری برای این مطلب ارسال شد از طریق ایمیل مرا اطلاع بده!
لسیت نظرات
هنوز برای این مطلب نظری ارسال نشده است!