Danh sách Tutorial

Tạo Artisan Command trong Laravel


Một trong những cấu trúc quan trọng tạo nên thương hiệu của mã nguồn mở Laravel đó là artisan Command. Với Artisan Command, nó hỗ trợ các bạn build source cơ bản, thao tác vào database như migrate, seed, kiểm tra thông tin Laravel và nhiều chức năng khác. Giờ chúng ta cùng vinasupport.com tím hiểu về Laravel Artisan Command nhé!

Laravel Artisan Comand là gì?

Artisan là một giao diện dòng lệnh (Command Interface) đi kèm với Laravel. Artisan tồn tại ở thư mục gốc ứng dụng của bạn dưới dạng tập lệnh thủ công và cung cấp một số lệnh hữu ích có thể hỗ trợ bạn trong khi xây dựng ứng dụng của mình.

Danh sách các lệnh Artisan Command

Một số command hữu ích mà bạn nên nhớ.

Liêt kê danh sách các command:

php artisan list

Kiểm tra version của Laravel

php artisan --version

Xem hướng dẫn của 1 tham số

php artisan help migrate

Khởi tạo server cho Laravel

php artisan serve

Danh sách 21 command của Artisan Command

make:channel Create a new channel class
make:command Create a new Artisan command
make:controller Create a new controller class
make:event Create a new event class
make:exception Create a new custom exception class
make:factory Create a new model factory
make:job Create a new job class
make:listener Create a new event listener class
make:mail Create a new email class
make:middleware Create a new middleware class
make:migration Create a new migration file
make:model Create a new Eloquent model class
make:notification Create a new notification class
make:observer Create a new observer class
make:policy Create a new policy class
make:provider Create a new service provider class
make:request Create a new form request class
make:resource Create a new resource
make:rule Create a new validation rule
make:seeder Create a new seeder class
make:test Create a new test class

Tạo Laravel Artisan Command

Chúng ta sử dụng lệnh artisan để tạo một command

php artisan make:command UploadFile

Trong ví dụ trên mình tạo 1 command với mục đích để upload file. Sau khi chạy lệnh nó sẽ tạo ra 1 file có tên là UploadFile.php ở thư mục app/Console/Commands/

Với nội dung mặc định như sau:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class UploadFile extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'command:name';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Command description';

    /**
     * Execute the console command.
     *
     * @return int
     */
    public function handle()
    {
        return 0;
    }
}

Bây giờ chúng ta sẽ sửa lại để nó có thể chạy được như chúng ta mong muốn như sau:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class UploadFile extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'upload_file';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Example Upload file to server';

    /**
     * Execute the console command.
     *
     */
    public function handle()
    {
        print ("Start upload file to server vinasupport.com");
        // Upload Process here
    }
}

Giải thích ý nghĩa class UploadFile chúng ta có:

– Thuộc tính $signature là tên hoặc là ký hiệu của command.

protected $signature = 'upload_file';

– Thuộc tính $description là phần miêu tả ý nghĩa của command

protected $description = 'Example Upload file to server';

– Phương thức handle là hàm xử lý nội dùng cần thực hiện.

public function handle()
{
    print ("Start upload file to server vinasupport.com");
    // Upload Process here
}

Cuối cùng để chạy command trên chúng ta chạy thông qua artisan như sau:

php artisan upload_file

Kết quả:

Các tham số của Artisan Command

Để truyền các tham số vào Artisan Command chúng ta có các loại sau:

Option bắt buộc

protected $signature = 'order:check {param}';

Option tuỳ chọn

protected $signature = 'order:check {param?}';

Option với dữ liệu mặc định

protected $signature = 'order:check {param=foo}';

Để lấy giá trị Option truyền vào thì trong phương thức handle() chúng ta gọi ra:

$param = $this->option('param');

Để lấy all giá trị Options

$options = $this->options();

Nguồn: vinasupport.com

SHARE

mode_edit Bình luận của bạn

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

account_circle
web