Artisan Là Gì

     

Nếu đã từng có lần làm project bởi Laravel thì dĩ nhiên hẳn chúng ta đã từng nghe về cái tên Artisan hoặc tối thiểu 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 ra nó là gì? Qua bài viết này, mình ước ao rằng các bạn sẽ hiểu thêm về Laravel Artisan và có thể tự tạo nên câu lệnh Artisan mang đến riêng mình. Ban đầu thôi =)))

1. Giới thiệu

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

php artisan listMỗi câu lệnh đều phải có các tham số và tùy lựa chọn đi kèm, để hiển thị chi tiết 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 đọc về lệnh db:seed thì sẽ dùng câu lệnh sau

php artisan help db:seed2. Tạo thành câu lệnhNhư tôi đã nói nghỉ ngơi trên, Artisan cung ứng cho họ rất nhiều câu lệnh hữu dụng nhưng nếu từng đó chưa đủ để giao hàng mục đích của người sử dụng thì chúng ta có thể tự tạo thành các câu lệnh giao hàng cho mục đích riêng của mình. Để tạo lệnh mới, bọn họ sẽ sử dụng lệnh make:command của Artisan, nó sẽ khởi tạo ra một class mang lại câu lệnh này với lưu vào app/Console/Commands. Vào ví dụ dưới đây, chúng ta sẽ tạo thành câu lệnh để tạo nên 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ằng lệnh php artisan make:command AccountCommand. File AccountCommand.php vẫn được tạo ra trong thư mục Commands với văn bản như sau:

Có 3 thứ cần chăm chú ở phía trên đó là:

Angruments và Options

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

Xem thêm: Mua Đất An Phú An Khánh Q2 Hcm, Mua Bán Nhà Đất Khu Đô Thị Mới An Phú

protected $signature = "create:account username --adminTrong ví dụ này, tùy chọn --admin hoàn toàn có thể được gọi khi chạy câu lệnh. Nếu như --admin được điện thoại tư vấn thì quý hiếm của tùy lựa chọn này là true còn còn nếu như không thì đang là false.

Xem thêm: Có Nên Cạo Lông Tay Có Ảnh Hưởng Gì Không ? Phương Pháp Nào Là An Toàn

php artisan create:account admin --adminCác tùy chọn khác khi 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 có thể thêm miêu tả cho đối số hoặc tùy chọn khi khai báo $signature để cho những người khác lúc dùng có thể biết được các tham số và tùy chọn này được sử dụng với mục tiêu gì.

protected $signature = "create:account username: thương hiệu tài khoản --admin: Tạo thông tin tài khoản với quyền admin";

Description

protected $description = "Command description";

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

command command:name Command description

Xử lý logic

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

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

Lấy giá chỉ trị trải qua input từ tín đồ dùng:

$username = $this->ask("Username: ");Câu hỏi không 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 lớn 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 sản xuất với Artisan bằng cách thêm tên class vào thuộc tính $commands vào app/Console/Kernel.php. Lúc Artisan khởi động, toàn bộ các kệnh được liệt kê trong danh sách sẽ tiến hành service container giải quyết và xử lý và đk với Artisan:

protected $commands = < CommandsAccountCommand::class>;Trong trường hòa hợp class khai báo câu lệnh không bên trong thư mục Commands mà phía 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 mày mò được về Artisan và giải pháp tạo những câu lệnh tùy chọn đến nó. ý muốn rằng qua nội dung bài viết này đang giúp các bạn hiểu đạt thêm về artisan và chế tạo ra được các câu lệnh mang đến riêng mình. Ví như 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é!!