Laravel là một full-stack framework cung cấp rất nhiều lệnh thủ công để tự động hóa các hành động khác nhau, như tạo bộ điều khiển, tạo cơ sở dữ liệu và khởi động máy chủ. Tuy nhiên, khi xây dựng các giải pháp tùy chỉnh, bạn có các nhu cầu đặc biệt của riêng mình, có thể bao gồm một lệnh mới. Laravel không giới hạn bạn chỉ với các lệnh của nó;
Dưới đây là các bước để tạo một lệnh thủ công mới
Bước 1. Tạo một ứng dụng Laravel mới
laravel new custom
Bước 2. Tạo một lệnh
Sử dụng lệnh
php artisan make:command CheckUsers
9 để tạo lệnh mới. Chỉ cần nhập tên lệnh, như vậyphp artisan make:command CheckUsers
Trong ví dụ này, chúng tôi đang tạo một lệnh có tên là
0php artisan check:users
Lệnh tạo một tệp có tên
php artisan check:users
1, được đặt tên theo tên lệnh, trong thư mục php artisan check:users
2 mới được tạo trong thư mục php artisan check:users
3Tệp được tạo chứa các cấu hình của lệnh mới được tạo dễ hiểu và dễ chỉnh sửa
Bước 3. tùy chỉnh lệnh
Đầu tiên, đặt chữ ký lệnh. Đây là những gì sẽ được đặt sau
php artisan check:users
4 để chạy lệnh. Trong ví dụ này, chúng tôi sẽ sử dụng php artisan check:users
5, vì vậy lệnh sẽ có thể truy cập được bằng cách chạyphp artisan check:users
Để làm điều này, hãy cập nhật thuộc tính
php artisan check:users
6 của lệnh, như thế nàyprotected $signature = 'check:users';
Tiếp theo, thiết lập một mô tả phù hợp sẽ hiển thị khi
php artisan check:users
7 hiển thị lệnh cùng với các lệnh khácĐể thực hiện việc này, hãy cập nhật thuộc tính
php artisan check:users
8 để phù hợp với điều nàyprotected $description = 'Get count of users on the platform';
Cuối cùng, trong phương thức
php artisan check:users
9, hãy thực hiện bất kỳ hành động nào bạn định thực hiện. Trong ví dụ này, số lượng người dùng trên nền tảng được lặp lạipublic function handle[]
{
echo User::count[] . "\n";
}
Bước 4. lệnh kiểm tra
Trong thiết bị đầu cuối, hãy chạy lệnh để xem số lượng người dùng trong cơ sở dữ liệu của bạn
php artisan check:users
Truyền đối số cho lệnh
Bạn có thể có một lệnh cần đối số cho hàm. Ví dụ: một lệnh xóa tất cả các bài đăng của một người dùng cụ thể khỏi cơ sở dữ liệu sẽ yêu cầu id của người dùng
Để thêm đối số, hãy cập nhật chuỗi
php artisan check:users
6 và thêm đối số trong dấu ngoặc nhọnprotected $signature = 'remove:posts {userId}';
Lệnh này sau đó sẽ được gọi khi id của người dùng là 5
php artisan remove:posts 5
Vào những thời điểm khác, bạn muốn có thể chuyển vào một đối số, nhưng không phải lúc nào cũng vậy, vì vậy bạn có thể làm cho đối số trở thành tùy chọn bằng cách thêm một dấu chấm hỏi ở cuối, như sau
protected $signature = 'remove:posts {userId?}';
Bạn cũng có thể đặt giá trị mặc định cho đối số như vậy
php artisan make:command CheckUsers
0Bạn cũng có thể chuyển vào nhiều đối số và biến chúng thành tùy chọn hoặc với các giá trị mặc định như bạn muốn
php artisan make:command CheckUsers
1Những đối số này có thể được truy cập bằng cách sử dụng
php artisan make:command CheckUsers
2Điều này trả về một mảng kết hợp với các đối số là khóa và giá trị của chúng là giá trị. Vì vậy, để truy cập đối số
protected $signature = 'check:users';
1, bạn có thể lấy nó như thế nàyphp artisan make:command CheckUsers
3Tuy nhiên, có một cách khác để chỉ lấy một đối số
php artisan make:command CheckUsers
4Truyền tùy chọn cho lệnh
Lệnh cũng có thể nhận được các tùy chọn. Các tùy chọn giống như các đối số và chúng được sử dụng để thêm thông tin vào lệnh. Chúng có thể được sử dụng mà không có đối số
Ví dụ: để chỉ đếm số người dùng có email đã xác minh, bạn có thể chuyển tùy chọn
protected $signature = 'check:users';
2 cho lệnh. Để tạo một tùy chọn, hãy chuyển nó vào thuộc tính php artisan check:users
6 giống như đối số, nhưng thêm tiền tố vào nó là protected $signature = 'check:users';
4php artisan make:command CheckUsers
5Bây giờ, lệnh có thể được sử dụng với một tùy chọn như thế này
php artisan make:command CheckUsers
6Bạn có thể đặt một giá trị mặc định cho một tùy chọn hoặc đặt nó để yêu cầu một giá trị
php artisan make:command CheckUsers
7Trong ví dụ này,
protected $signature = 'check:users';
5 yêu cầu sử dụng một giá trị và protected $signature = 'check:users';
6 có giá trị mặc định là 5. protected $signature = 'check:users';
7 được gán một giá trị Boolean tùy thuộc vào việc nó có được chuyển vào hay khôngGiá trị của các tùy chọn này có thể được truy cập dễ dàng bằng cách sử dụng
protected $signature = 'check:users';
8 cho các tùy chọn đơn lẻ và protected $signature = 'check:users';
9 để nhận tất cả các tùy chọn dưới dạng một mảng kết hợpMô tả các tham số đầu vào
Cho đến giờ, chúng ta đã học cách chấp nhận các đối số và thậm chí cả các tùy chọn, nhưng khi lệnh được sử dụng với
protected $description = 'Get count of users on the platform';
0, các đầu vào này không có mô tả. Để đặt những thứ này, chỉ cần thêm dấu hai chấm, protected $description = 'Get count of users on the platform';
1, sau đối số hoặc tên tùy chọn