همانطور که میدانیم Artisan یک رابط خط فرمان (CLI) در لاراول هست. این ابزار چندین فرمان مفید برای انجام وظایف رایج در طول توسعه، مانند مایگریشن ها پایگاه داده، تولید کد و اجرای تستها را فراهم میکند.
در این پست، به بررسی Artisan، نحوه ایجاد و استفاده از دستورات کنسول و ویژگیهای پیشرفتهای مانند تعریف انتظارات ورودی، I/O فرمان، ثبت دستورات، اجرای دستورات، مدیریت سیگنال و رویدادها میپردازیم.
Artisan ابزار داخلی لاراول برای تعاملات خط فرمان با برنامه هاست. این ابزار مجموعهای قوی از دستورات را ارائه میدهد که به توسعهدهندگان کمک میکند تا جریان کاری خود را بهبود بخشند. دستورات Artisan میتوانند وظایف تکراری را خودکار کنند، محیط برنامه را مدیریت کنند و بهرهوری کلی را افزایش دهند.
برای لیست کردن تمامی دستورات موجود در Artisan، کافیست دستور زیر را اجرا کنید:
php artisan list
برای ایجاد یک دستور سفارشی در 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
}
}
شما میتوانید انتظارات ورودی برای فرمان خود را با استفاده از ویژگی $signature
تعریف کنید. این ویژگی به شما اجازه میدهد نام، گزینهها و آرگومانهایی که فرمان شما قبول میکند را مشخص کنید.
protected $signature = 'custom:command {name} {--age=}';
در مثال بالا، فرمان یک آرگومان name
و یک گزینه اختیاری age
را انتظار دارد.
در داخل متد 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!');
برای در دسترس قرار دادن فرمان خود به Artisan، باید آن را در آرایه commands
در فایل app/Console/Kernel.php
ثبت کنید:
protected $commands = [
\App\Console\Commands\CustomCommand::class,
];
میتوانید فرمان سفارشی خود را از ترمینال با استفاده از دستور زیر اجرا کنید:
php artisan custom:command {name} --age={age}
//example
php artisan custom:command iman 20
دستورات 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 در برنامههای لاراول خود بهرهمند شوید.
اگر این مطلب برای شما مفید بود یا شما هم نکته ای دارید از بخش نظرات برای ما ارسال کنید
برای اطلاع از پاسخ به نظر شما می توانید ایمیل یا شماره موبایل خود را وارد نمایید. *
ایمیل و شماره موبایل شما کاملا مخفی خواهد ماند و در سایت نمایش داده نخواهد شد. *
هنوز برای این مطلب نظری ارسال نشده است!