ngày 30-05-2020
Đối với những người học laravel thì command không phải là vấn đề xa lạ khi mà laravel hầu như đã hỗ trợ rất nhiều những lệnh command để các lập trình viên có thể thao tác dễ dàng hơn ví dụ như:
Trong bài viết này sẽ nói về cách tạo các command line cho riêng bạn để hỗ trợ cho việc codeing, ví dụ khi bạn cần thực hiện một chức năng như sent mail, export csv mà không cần phải có request từ client, hay nói cách dễ hiểu hơn là mình sẽ run php bằng cli (commant line)
Để xem tất cả các command line đang hỗ trợ hãy gõ
Để xem các hưỡng dẫn hỗ trợ của của lệnh, cũng như là các tham số truyền vào, thông tin về version…
II: Cách tạo mới một command line
Bạn có thể tạo một class command mới bằng lệnh
sau khi thực hiện lệnh này thì trong thư mục app/console/command sẽ có file tên là TestComand.php, đây được xem như là controller, sẽ chiệu trách nhiệm thực hiện chức năng của command.
Để chạy được command, thì mình cần phải khai báo lớp command đó trong Console/kennel.php,
Ví dụ cho việc khai báo class TestCommand, tôi sẽ thực hiện
sau khi khai báo xong, các bạn có thể dử dụng lệnh php artisan list để xem command mình vừa tạo đã có trong danh sách command đang được hỗ trợ chưa
protected $signature = 'ten command';
ví dụ:
protected $signature = 'function:test-command';
thuộc tính này khai báo tên của command, ví dụ như đoạn code ở trên, khi thực hiện chức năng của command,ta sẽ chạy lệnh:
2.khai báo description
Thuộc tính này để khai báo mô tả của command
protected $description = 'Test command active';
3.hàm handle
trong hàm này sẽ chứa đoạn code thực thi chức năng của command line
ví dụ:
Và đây là kết quả: khi tôi gõ php artisan:test-command
Ngoài ra đễ hỗ trợ lập trình tốt hơn cho console, laravel cung cấp cho chúng ta các công cụ để làm việc.
Truyền biến và option vào cmd
Ví dụ:
//register command line, name is argument required, and function is option, not required
protected $signature = 'function:test-command {name} {--function=default}';
với {name} là biến bắt buộc phải truyền vào khi gõ lệnh command, còn {{--function= default}} là biến theo dạng option (không bắt buộc), với function là tên biến còn default
là giá trị mặc định, ví dụ sau khi khai báo như trên, lúc chạy command ta sẽ dùng lệnh
php artisan:test-command tich --function=h
hoặc
php artisan:test-command tich
sau khi truyền biến và option,khi cần sử dụng đến chúng, ta có thể get value các biến hoặc option này ra bằng các hàm được viết trong function handle
//get argument value
$name = $this->argument('name');
//get option value
$function= $this->option('function');
Ngoài ra để có thể lập trình trên console còn có 1 số hàm như
// display ask question yes/no
//display question and wait answer
Ngoài ra còn khá nhiều hàm hỗ trợ khác mà tôi không đề cập đến, chi tiết các bạn nên tham khảo
https://laravel.com/docs/6.x/artisan
Để hiểu rõ hơn về command ta tham khảo đoạn code sau
Và đây là kết quả
Khi tôi nhập: php artisan:test-command tich --function=h
Hãy viết lại đoạn code trên và thử với các trường hợp còn lại nhé
Thông tin về khóa học Lập Trình FullStack PHP, Cam kết có thể đi làm sau khóa học
Làm chủ laravel trong vòng 2 tháng, Cam kết có thể đi làm sau khóa học, chỉ 700k/tháng
Nhận Làm Website Giá Rẻ, chỉ từ 3 triệu đã có một site chuẩn SEO cực chất, bao hosting và tên miền 1 năm.