ARTISAN LÀ GÌ

     

Nếu đã từng làm project bởi Laravel thì chắc hẳn hẳn chúng ta đã từng nghe về cái thương hiệu Artisan hoặc ít nhất thì cũng từng chạy những câu lệnh như php artisan make:controller UsersController, php artisan migration, php artisan serve... Vậy thực chất nó là gì? Qua nội dung bài viết này, mình ao ước rằng các các bạn sẽ hiểu thêm về Laravel Artisan và có thể tự tạo ra câu lệnh Artisan mang lại riêng mình. Ban đầu thôi =)))

1. Giới thiệu

Theo mình tìm hiểu thì Artisan là đồ họa dòng lệnh (command-line interface) đi kèm với Laravel được xây dựng dựa trên component Symfony Console. Nó cũng cung cấp cho họ hàng loạt các tính năng hữu ích như xử lý các công việc thủ công bằng việc auto hóa chúng như sinh key mã hóa, thao tác làm việc với database (migrate, seed...), tạo những template theo các mẫu khác nhau như Model, Controller, Event... Tự đó rút ngắn được thời gian và tăng năng suất công việc, rất xứng danh với cái tên của nó. Để xem danh sách những câu lệnh được hỗ trợ, chúng ta cũng có thể sử dụng câu lệnh:

php artisan listMỗi câu lệnh đều sở hữu các tham số với tùy chọn đi kèm, để hiển thị cụ thể về câu lệnh chỉ cần để trước tên của lệnh tự khóa help. Ví dụ mình thích tìm phát âm về lệnh db:seed thì sẽ dùng câu lệnh sau

php artisan help db:seed2. Tạo câu lệnhNhư mình đã nói sống trên, Artisan hỗ trợ cho họ rất nhiều câu lệnh bổ ích nhưng trường hợp từng đó chưa đủ để giao hàng mục đích của bạn thì chúng ta có thể tự tạo thành các câu lệnh ship hàng cho mục đích riêng của mình. Để sinh sản lệnh mới, bọn họ sẽ cần sử dụng lệnh make:command của Artisan, nó sẽ tạo ra một class cho câu lệnh này với lưu trong app/Console/Commands. Trong ví dụ dưới đây, chúng ta sẽ tạo thành câu lệnh để tạo ra một hoặc nhiều thông tin tài khoản có quyền admin hoặc không.

Bạn đang xem: Artisan là gì

Cấu trúc file Command

Đầu tiên họ tạo AccountCommand bởi lệnh php artisan make:command AccountCommand. File AccountCommand.php đang được tạo nên trong thư mục Commands với câu chữ như sau:

Có 3 trang bị cần để ý ở đây đó là:

Angruments với Options

Laravel có thể chấp nhận được khai báo tên, đối số, tùy lựa chọn của câu lệnh thông quan biến signature dưới dạng một giá chỉ trị, biểu thức tốt cú pháp. Toàn bộ đối số cùng tùy lựa chọn đều phải kê trong cặp lốt ngoặc nhọn.

Xem thêm: Những Vật Dụng Cần Thiết Khi Đi Sinh Cho Mẹ Và Bé, Chuẩn Bị Đồ Đi Sinh Cho Mẹ Và Bé

protected $signature = "create:account username --adminTrong ví dụ này, tùy lựa chọn --admin có thể được gọi khi chạy câu lệnh. Ví như như --admin được call thì giá trị của tùy lựa chọn này là true còn còn nếu không thì đang là false.

Xem thêm: Làm Bằng Lái Xe Máy Không Cần Thi, Mua Bằng Lái Xe Máy A1 Không Thi Có Được Không

php artisan create:account admin --adminCác tùy lựa chọn khác lúc khai báo:

Optional: create:account username?Default value: create:account username=defaultValueShortcut: create:account username a ví dụ: php artisan create:account admin -aArray input: delete:account --id=* ví dụ: php artisan delete:account --id=1 --id=2Required option: `delete:account --id=Boolean option: create:account --admin

Bạn cũng hoàn toàn có thể thêm biểu hiện cho đối số hoặc tùy lựa chọn khi khai báo $signature để cho những người khác lúc dùng rất có thể biết được những tham số cùng tùy chọn này được sử dụng với mục tiêu gì.

protected $signature = "create:account username: tên tài khoản --admin: Tạo tài khoản với quyền admin";

Description

protected $description = "Command description";

Biến $description giúp bạn thêm trình bày về câu lệnh của chính bản thân mình và vẫn hiển thị khi người tiêu dùng gõ lệnh php artisan danh sách hay php artisan help

command command:name Command description

Xử lý logic

Hàm handle() sẽ được gọi mỗi lúc command của bạn được tiến hành thế nên chúng ta có thể xử lý dữ liệu ở trong hàm này. Để lấy tài liệu mà họ đã nhập sống command-line Laravel cung ứng phương thức argument() để mang tham số với option() để lấy tùy chọn. Ví dụ:

/** * Execute the console command. * *
return mixed */ public function handle() // mang tham số username $username = $this->argument("username"); // Lấy tất cả tham số, cực hiếm trả về sẽ là 1 trong mảng $arguments = $this->arguments(); // đem tùy lựa chọn id $id = $this->option("id); // Lấy tất cả tùy chọn, quý giá trả về sẽ là 1 mảng $options = $this->options(); Đã khi nào bạn download một lịch trình qua command-line và trong quá trình cài phải trả lời các câu hỏi như "Press enter lớn keep the default<>, or type selection number:" hay "Do you wish to lớn continue? "? Laravel Artisan cũng hỗ trợ cho họ các tùy lựa chọn như vậy, ví dụ:

Lấy giá chỉ trị thông qua input từ bạn dùng:

$username = $this->ask("Username: ");Câu hỏi ko hiển thị ngôn từ khi nhập:

$password = $this->secret("Password: ");Câu hỏi xác nhận Yes/No:

if ($this->confirm("Do you wish to continue? ")) //Câu hỏi lựa chọn:

$gender = $this->choice("What is your gender?, <"Male", "Female">, $default);3. Đăng ký câu lệnhĐăng ký câu lệnh vừa chế tác với Artisan bằng cách thêm tên class vào ở trong tính $commands vào app/Console/Kernel.php. Khi Artisan khởi động, tất cả các kệnh được liệt kê vào danh sách sẽ tiến hành service container giải quyết và xử lý và đăng ký với Artisan:

protected $commands = < CommandsAccountCommand::class>;Trong trường thích hợp class khai báo câu lệnh không nằm trong thư mục Commands mà phía bên trong thư mục AccountCommands thì khai báo như sau:

/** * Register the commands for the application. * *
return void */protected function commands() $this->load(__DIR__."/Commands"); $this->load(__DIR__."/AccountCommands"); // ...Trên đây là những gì mình tìm hiểu được về Artisan và bí quyết tạo các câu lệnh tùy chọn mang lại nó. Ao ước rằng qua bài viết này đã giúp các bạn hiểu nhận thêm về artisan và chế tác được các câu lệnh đến riêng mình. Nếu có thắc mắc gì thì các bạn hãy để lại bình luận phía dưới cho khách hàng nhé!!