Quay lại
Customizable artisan stubs trong Laravel

Các lệnh thủ công trong Laravel thực sự là một điều may mắn. Ý mình là bạn có thể tạo bất kỳ tệp nào có thể là  controllers, models, middleware,provider bằng cách gõ một lệnh đơn giản từ CLI. Chẳng hạn, nếu bạn muốn tạo một model có tên Post, bạn chỉ cần chạy lệnh sau…

php artisan make:model Post

…Và một model Post.php mới được tạo trong dự án của bạn trong thư mục Ứng dụng.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    //
}

Bạn có thể tạo controllers hoặc bất kỳ tệp nào khác theo cách tương tự. Bạn có thể kiểm tra tất cả các lệnh thủ công có sẵn bằng cách chạy lệnh php artisan list.

Bây giờ, như bạn có thể thấy, mỗi lệnh có một loại template được liên kết với chúng, trong đó có một số giá trị biến được thay thế bởi đầu vào do người dùng cung cấp. Chẳng hạn, trong lệnh make:model Post ở trên, Post được gán làm tên class trong tệp Post.php. Các file mẫu này được gọi là “Stubs”.

Một file model Stubs điển hình (model.stub) trông giống như sau.

<?php

namespace {{ namespace }};

use Illuminate\Database\Eloquent\Model;

class {{ class }} extends Model
{
    //
}

Ở đây, {{ namespace }}{{ class }} là các biến trong stub files được thay thế dựa trên đầu vào của người dùng trong lệnh thủ công tương ứng. Như bạn có thể thấy, đây là khung khá cơ bản cho một model class. Điều gì sẽ xảy ra nếu bạn muốn có nhiều nội dung hơn trong cùng một nội dung, sẵn sàng để bạn và nhóm của bạn sử dụng. Một template chỉ dành cho nhu cầu của bạn? Đây là lúc các stub customizations ( tùy chỉnh stub ) của Laravel phát huy tác dụng.

Customizable Artisan Stubs

Laravel 7 đi kèm với một lệnh Artisan bổ sung stub:publish có thể được sử dụng để publish các stubs phổ biến nhất để tùy chỉnh. Vì vậy, những gì bạn làm là chạy lệnh,

php artisan stub:publish

Và lệnh sẽ tạo một thư mục có tên là stubs ở thư mục gốc chứa tất cả các stubs đã publish. Nội dung thư mục trông như ảnh sau.

Như bạn có thể thấy, chúng ta có tất cả các tệp stubs mà Laravel đã sử dụng để sử dụng trong các lệnh Artisan. Bây giờ, tất cả những gì bạn phải làm là thay đổi các tệp stubs này theo nhu cầu của bạn và nó sẽ được phản ánh khi bạn tạo các lớp tương ứng của chúng bằng cách sử dụng các lệnh Artisan make.

Vì vậy, chẳng hạn, bạn muốn tùy chỉnh model stubs  để có các thuộc tính $guarded$fillable được điền sẵn và có thể bạn cũng muốn sử dụng SoftDeletes trên các mdoel của mình, bạn sẽ tùy chỉnh stubs/model.stub như này.

<?php

namespace {{ namespace }};

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class {{ class }} extends Model
{
    use SoftDeletes;

    protected $guarded = [];

    protected $fillable = [];

    //    
}

Và lần tới khi bạn sử dụng lệnh make:model, bạn sẽ có tất cả các model dựa trên mẫu trên.

 
 

Bình luận (0)

Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough
Michael Gough

Bài viết liên quan

Learning English Everyday