Artisan là gì

  -  

Nếu đã từng có lần có tác dụng project bởi Laravel thì chắc hẳn chúng ta đã có lần 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 nội dung bài viết này, mình ước ao rằng các bạn sẽ gọi thêm về Laravel Artisan cùng có thể từ bỏ tạo nên câu lệnh Artisan mang đến riêng biệt mình. Bắt đầu thôi =)))

1. Giới thiệu

Theo bản thân khám phá thì Artisan là hình ảnh cái lệnh (command-line interface) kèm theo với Laravel được thành lập dựa vào component Symfony Console. Nó cũng cấp cho đến họ một loạt các tính năng có lợi nlỗi cách xử trí các các bước bằng tay bằng Việc auto hóa bọn chúng như sinch key mã hóa, thao tác cùng với database (migrate, seed...), chế tạo ra các template theo các mẫu khác biệt nlỗi Model, Controller, Event... trường đoản cú đó tinh giảm được thời gian với tăng năng suất quá trình, khôn xiết xứng đáng cùng với cái thương hiệu của nó. Để coi danh sách những câu lệnh được hỗ trợ, bạn có thể sử dụng câu lệnh:

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

php artisan help db:seed2. Tạo câu lệnhNhư tôi đã nói trên, Artisan cung ứng đến chúng ta rất nhiều câu lệnh hữu ích nhưng trường hợp từng kia chưa đủ để ship hàng mục đích của chúng ta thì chúng ta có thể từ tạo nên những câu lệnh phục vụ cho mục đích riêng rẽ của chính bản thân mình. Để sản xuất lệnh new, chúng ta đang cần sử dụng lệnh make:commvà của Artisan, nó sẽ khởi tạo ra một class mang đến câu lệnh này cùng lưu lại trong app/Console/Commands. Trong ví dụ tiếp sau đây, bọn họ sẽ tạo nên ra câu lệnh để tạo nên một hoặc những thông tin tài khoản bao gồm quyền admin hoặc ko.

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

Cấu trúc file Command

Trước tiên bọn họ tạo nên AccountComm& bằng lệnh php artisan make:command AccountCommand. File AccountCommvà.php sẽ được tạo nên trong thư mục Commands với văn bản như sau:

Có 3 lắp thêm phải để ý ở đây kia 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 lại vươn lên là signature bên dưới dạng một quý giá, biểu thức giỏi cú pháp. Tất cả đối số cùng tùy chọn gần như phải để vào cặp dấu ngoặc nhọn.

Xem thêm: Những Địa Điểm Phượt Đẹp Ở Miền Nam Hấp Dẫn Nhất 2021, Du Lịch Miền Nam

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

Xem thêm: Tên Thủ Đô Brazil Là Gì - Tên Thủ Đô Của Brazil Là Gì

php artisan create:account admin --adminCác tùy chọn không giống khi khai báo:

Optional: create:tài khoản username?Default value: create:tài khoản username=defaultValueShortcut: create:tài khoản username --admin ví dụ: php artisan create:account admin -aArray input: delete:tài khoản --id=* ví dụ: php artisan delete:account --id=1 --id=2Required option: `delete:trương mục --id=Boolean option: create:account --admin

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

protected $signature = "create:trương mục username: Tên tài khoản --admin: Tạo tài khoản với quyền admin";

Description

protected $mô tả tìm kiếm = "Comm& description";

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

comm& command:name Comm& description

Xử lý logic

Hàm handle() sẽ tiến hành gọi mọi khi commvà của doanh nghiệp được tiến hành thế cho nên bạn có thể xử lý tài liệu ở vào hàm này. Để lấy dữ liệu nhưng họ sẽ nhập sinh sống command-line Laravel hỗ trợ phương thức argument() để mang ttê mê số và option() để đưa tùy lựa chọn. Ví dụ:

/** * Exedễ thương the console command. * *
return mixed */ public function handle() // Lấy ttê mê số username $username = $this->argument("username"); // Lấy toàn bộ tham mê số, giá trị trả về vẫn là một trong những mảng $arguments = $this->arguments(); // Lấy tùy lựa chọn id $id = $this->option("id); // Lấy tất cả tùy chọn, giá trị trả về vẫn là một mảng $options = $this->options(); Đã khi nào các bạn tải một chương trình qua command-line và trong quy trình sở hữu buộc phải trả lời những thắc mắc nlỗi "Press enter to lớn keep the default<>, or type selection number:" tốt "Do you wish to lớn continue? "? Laravel Artisan cũng hỗ trợ mang lại bọn họ những tùy lựa chọn những điều đó, ví dụ:

Lấy quý hiếm trải qua input đầu vào từ bỏ tín đồ dùng:

$username = $this->ask("Username: ");Câu hỏi không hiển thị văn bản lúc 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 cam kết câu lệnhĐăng ký kết câu lệnh vừa tạo cùng với Artisan bằng cách thêm thương hiệu class vào trực thuộc tính $commands trong app/Console/Kernel.php. lúc Artisan khởi động, toàn bộ những kệnh được liệt kê trong list sẽ tiến hành service container xử lý và đăng ký với Artisan:

protected $commands = < CommandsAccountCommand::class>;Trong ngôi trường thích hợp class knhì báo câu lệnh ko bên trong tlỗi mục Commands mà phía bên trong tlỗi 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à các gì bản thân mày mò được về Artisan cùng biện pháp tạo ra các câu lệnh tùy chọn cho nó. Mong rằng qua bài viết này sẽ giúp các bạn đọc đạt thêm về artisan và tạo được những câu lệnh mang đến riêng rẽ bản thân. Nếu có thắc mắc gì thì chúng ta hãy để lại phản hồi bên dưới cho chính mình nhé!!