Mô-đun laravel là gì?

Các gói là cách chính để thêm chức năng vào Laravel. Các gói có thể là bất cứ thứ gì từ một cách tuyệt vời để làm việc với các ngày như Carbon hoặc một gói cho phép bạn liên kết các tệp với các mô hình Eloquent như Spatie Laravel Media Library

Có nhiều loại gói khác nhau. Một số gói độc lập, có nghĩa là chúng hoạt động với bất kỳ khung công tác PHP nào. Carbon và PHPUnit là ví dụ về các gói độc lập. Bất kỳ gói nào trong số này có thể được sử dụng với Laravel bằng cách yêu cầu chúng trong tệp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

2 của bạn

Mặt khác, các gói khác được dành riêng để sử dụng với Laravel. Các gói này có thể có các tuyến, bộ điều khiển, chế độ xem và cấu hình dành riêng để nâng cao ứng dụng Laravel. Hướng dẫn này chủ yếu đề cập đến việc phát triển các gói dành riêng cho Laravel

Lưu ý về mặt tiền

Khi viết một ứng dụng Laravel, việc bạn sử dụng hợp đồng hoặc mặt tiền thường không thành vấn đề vì cả hai đều cung cấp mức độ kiểm tra cơ bản ngang nhau. Tuy nhiên, khi viết các gói, gói của bạn thường sẽ không có quyền truy cập vào tất cả các trình trợ giúp kiểm tra của Laravel. Nếu bạn muốn có thể viết các bài kiểm tra gói của mình như thể gói được cài đặt bên trong một ứng dụng Laravel điển hình, bạn có thể sử dụng gói Orchestral Testbench

Khám phá gói

Trong tệp cấu hình

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

3 của ứng dụng Laravel, tùy chọn

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

4 xác định danh sách các nhà cung cấp dịch vụ sẽ được tải bởi Laravel. Khi ai đó cài đặt gói của bạn, thông thường bạn sẽ muốn nhà cung cấp dịch vụ của mình được đưa vào danh sách này. Thay vì yêu cầu người dùng thêm nhà cung cấp dịch vụ của bạn vào danh sách theo cách thủ công, bạn có thể xác định nhà cung cấp đó trong phần

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

5 của tệp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

2 trong gói của bạn. Ngoài các nhà cung cấp dịch vụ, bạn cũng có thể liệt kê bất kỳ mặt tiền nào bạn muốn đăng ký

"Barryvdh\\Debugbar\\ServiceProvider"

"Debugbar": "Barryvdh\\Debugbar\\Facade"

Khi gói của bạn đã được định cấu hình để khám phá, Laravel sẽ tự động đăng ký nhà cung cấp dịch vụ và mặt tiền của nó khi nó được cài đặt, tạo trải nghiệm cài đặt thuận tiện cho người dùng gói của bạn

Từ chối khám phá gói

Nếu bạn là người tiêu dùng của một gói và muốn tắt chức năng khám phá gói cho một gói, bạn có thể liệt kê tên gói trong phần

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

5 của tệp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

2 của ứng dụng của bạn

________số 8

Bạn có thể vô hiệu hóa tính năng khám phá gói cho tất cả các gói bằng cách sử dụng ký tự

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

9 bên trong chỉ thị

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

00 của ứng dụng của bạn

Các nhà cung cấp dịch vụ

Nhà cung cấp dịch vụ là điểm kết nối giữa gói của bạn và Laravel. Nhà cung cấp dịch vụ chịu trách nhiệm ràng buộc mọi thứ vào bộ chứa dịch vụ của Laravel và thông báo cho Laravel nơi tải các tài nguyên gói như chế độ xem, cấu hình và tệp bản địa hóa

Một nhà cung cấp dịch vụ mở rộng lớp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

01 và chứa hai phương thức.

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

02 và

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03. Lớp cơ sở

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

04 nằm trong gói Trình soạn thảo

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

05, mà bạn nên thêm vào phần phụ thuộc của gói của riêng mình. Để tìm hiểu thêm về cấu trúc và mục đích của các nhà cung cấp dịch vụ, hãy xem tài liệu của họ

Tài nguyên

Cấu hình

Thông thường, bạn sẽ cần xuất bản tệp cấu hình gói của mình lên thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

06 của ứng dụng. Điều này sẽ cho phép người dùng gói của bạn dễ dàng ghi đè các tùy chọn cấu hình mặc định của bạn. Để cho phép xuất bản các tệp cấu hình của bạn, hãy gọi phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 từ phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03 của nhà cung cấp dịch vụ của bạn

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

Bây giờ, khi người dùng gói của bạn thực thi lệnh

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

09 của Laravel, tệp của bạn sẽ được sao chép vào vị trí xuất bản đã chỉ định. Khi cấu hình của bạn đã được xuất bản, các giá trị của nó có thể được truy cập giống như bất kỳ tệp cấu hình nào khác

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

0

Cảnh báo
Bạn không nên xác định bao đóng trong tệp cấu hình của mình. Chúng không thể được sắp xếp theo thứ tự chính xác khi người dùng thực hiện lệnh Artisan

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

20.

Cấu hình gói mặc định

Bạn cũng có thể hợp nhất tệp cấu hình gói của riêng mình với bản sao đã xuất bản của ứng dụng. Điều này sẽ cho phép người dùng của bạn chỉ xác định các tùy chọn mà họ thực sự muốn ghi đè trong bản sao đã xuất bản của tệp cấu hình. Để hợp nhất các giá trị tệp cấu hình, hãy sử dụng phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

21 trong phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

02 của nhà cung cấp dịch vụ của bạn

Phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

21 chấp nhận đường dẫn đến tệp cấu hình gói của bạn làm đối số đầu tiên và tên của bản sao tệp cấu hình của ứng dụng làm đối số thứ hai

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

2

Cảnh báo
Phương pháp này chỉ hợp nhất cấp độ đầu tiên của mảng cấu hình. Nếu người dùng của bạn xác định một phần mảng cấu hình đa chiều, các tùy chọn còn thiếu sẽ không được hợp nhất.

tuyến đường

Nếu gói của bạn chứa các tuyến đường, bạn có thể tải chúng bằng phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

24. Phương pháp này sẽ tự động xác định xem các tuyến của ứng dụng có được lưu vào bộ đệm hay không và sẽ không tải tệp tuyến của bạn nếu các tuyến đã được lưu vào bộ đệm

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

8

di cư

Nếu gói của bạn chứa cơ sở dữ liệu di chuyển, bạn có thể sử dụng phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

25 để thông báo cho Laravel cách tải chúng. Phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

25 chấp nhận đường dẫn đến quá trình di chuyển gói của bạn làm đối số duy nhất của nó

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

1

Khi quá trình di chuyển gói của bạn đã được đăng ký, chúng sẽ tự động được chạy khi lệnh

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

27 được thực thi. Bạn không cần xuất chúng vào thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

28 của ứng dụng

bản dịch

Nếu gói của bạn chứa các tệp dịch, bạn có thể sử dụng phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

29 để thông báo cho Laravel cách tải chúng. Ví dụ: nếu gói của bạn có tên là

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80, bạn nên thêm phần sau vào phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03 của nhà cung cấp dịch vụ của mình

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

7

Bản dịch gói được tham chiếu bằng quy ước cú pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

82. Vì vậy, bạn có thể tải dòng

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

84 của gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80 từ tệp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

85 như vậy

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

2

Xuất bản bản dịch

Nếu bạn muốn xuất bản các bản dịch gói của mình lên thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

86 của ứng dụng, bạn có thể sử dụng phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 của nhà cung cấp dịch vụ. Phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 chấp nhận một loạt các đường dẫn gói và vị trí xuất bản mong muốn của chúng. Ví dụ: để xuất bản các tệp dịch cho gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80, bạn có thể thực hiện như sau

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

7

Bây giờ, khi người dùng gói của bạn thực thi lệnh

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

09 Artisan của Laravel, bản dịch gói của bạn sẽ được xuất bản tới vị trí xuất bản đã chỉ định

Lượt xem

Để đăng ký chế độ xem gói của bạn với Laravel, bạn cần cho Laravel biết vị trí của chế độ xem. Bạn có thể thực hiện việc này bằng cách sử dụng phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

11 của nhà cung cấp dịch vụ. Phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

11 chấp nhận hai đối số. đường dẫn đến các mẫu xem của bạn và tên gói của bạn. Ví dụ: nếu tên gói của bạn là

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80, bạn sẽ thêm phần sau vào phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03 của nhà cung cấp dịch vụ của mình

"barryvdh/laravel-debugbar"

0

Chế độ xem gói được tham chiếu bằng quy ước cú pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

15. Vì vậy, sau khi đường dẫn chế độ xem của bạn được đăng ký tại nhà cung cấp dịch vụ, bạn có thể tải chế độ xem

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

16 từ gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80 như vậy

"barryvdh/laravel-debugbar"

1

Ghi đè lượt xem gói

Khi bạn sử dụng phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

11, Laravel thực sự đăng ký hai vị trí cho chế độ xem của bạn. thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

19 của ứng dụng và thư mục bạn chỉ định. Vì vậy, sử dụng gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80 làm ví dụ, trước tiên, Laravel sẽ kiểm tra xem phiên bản tùy chỉnh của chế độ xem đã được nhà phát triển đặt trong thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

71 chưa. Sau đó, nếu chế độ xem chưa được tùy chỉnh, Laravel sẽ tìm kiếm thư mục chế độ xem gói mà bạn đã chỉ định trong lệnh gọi tới

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

11. Điều này giúp người dùng gói dễ dàng tùy chỉnh/ghi đè chế độ xem gói của bạn

Chế độ xem xuất bản

Nếu bạn muốn cung cấp chế độ xem của mình để xuất bản lên thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

19 của ứng dụng, bạn có thể sử dụng phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 của nhà cung cấp dịch vụ. Phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 chấp nhận một loạt các đường dẫn xem gói và các vị trí xuất bản mong muốn của chúng

"barryvdh/laravel-debugbar"

2

Bây giờ, khi người dùng gói của bạn thực thi lệnh

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

09 Artisan của Laravel, các chế độ xem gói của bạn sẽ được sao chép đến vị trí xuất bản đã chỉ định

Xem thành phần

Nếu bạn đang xây dựng một gói sử dụng các thành phần Blade hoặc đặt các thành phần trong các thư mục không thông thường, bạn sẽ cần phải đăng ký thủ công lớp thành phần của mình và bí danh thẻ HTML của nó để Laravel biết tìm thành phần đó ở đâu. Thông thường, bạn nên đăng ký các thành phần của mình theo phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03 của nhà cung cấp dịch vụ gói của bạn

"barryvdh/laravel-debugbar"

3

Khi thành phần của bạn đã được đăng ký, nó có thể được hiển thị bằng bí danh thẻ của nó

Thành phần gói tự động tải

Ngoài ra, bạn có thể sử dụng phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

78 để tự động tải các lớp thành phần theo quy ước. Ví dụ: gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

79 có thể có các thành phần

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

20 và

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

21 nằm trong không gian tên

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

22

"barryvdh/laravel-debugbar"

4

Điều này sẽ cho phép sử dụng các thành phần gói theo không gian tên nhà cung cấp của họ bằng cách sử dụng cú pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

23

"barryvdh/laravel-debugbar"

5

Blade sẽ tự động phát hiện lớp được liên kết với thành phần này bằng cách đặt pascal vào tên thành phần. Các thư mục con cũng được hỗ trợ bằng ký hiệu "dấu chấm"

Thành phần ẩn danh

Nếu gói của bạn chứa các thành phần ẩn danh, chúng phải được đặt trong thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

24 của thư mục "lượt xem" của gói của bạn [như được chỉ định bởi phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

11]. Sau đó, bạn có thể hiển thị chúng bằng cách thêm tiền tố vào tên thành phần với không gian tên chế độ xem của gói

"Giới thiệu" Artisan Command

Lệnh Artisan

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

26 tích hợp sẵn của Laravel cung cấp bản tóm tắt về môi trường và cấu hình của ứng dụng. Các gói có thể đẩy thông tin bổ sung vào đầu ra của lệnh này thông qua lớp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

27. Thông thường, thông tin này có thể được thêm vào từ phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03 của nhà cung cấp dịch vụ trọn gói của bạn

"barryvdh/laravel-debugbar"

6

lệnh

Để đăng ký các lệnh Artisan của gói của bạn với Laravel, bạn có thể sử dụng phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

29. Phương thức này mong đợi một mảng tên lớp lệnh. Khi các lệnh đã được đăng ký, bạn có thể thực thi chúng bằng Artisan CLI

"barryvdh/laravel-debugbar"

7

Tài sản công

Gói của bạn có thể có các nội dung như JavaScript, CSS và hình ảnh. Để xuất bản những nội dung này vào thư mục

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

70 của ứng dụng, hãy sử dụng phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 của nhà cung cấp dịch vụ. Trong ví dụ này, chúng tôi cũng sẽ thêm thẻ nhóm nội dung

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

70, thẻ này có thể được sử dụng để dễ dàng xuất bản các nhóm nội dung có liên quan

"barryvdh/laravel-debugbar"

8

Bây giờ, khi người dùng gói của bạn thực hiện lệnh

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

09, nội dung của bạn sẽ được sao chép vào vị trí xuất bản đã chỉ định. Vì người dùng thường cần ghi đè nội dung mỗi khi gói được cập nhật, nên bạn có thể sử dụng cờ

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

74

"barryvdh/laravel-debugbar"

9

Xuất bản nhóm tệp

Bạn có thể muốn xuất bản các nhóm nội dung gói và tài nguyên riêng biệt. Chẳng hạn, bạn có thể muốn cho phép người dùng của mình xuất bản các tệp cấu hình của gói mà không bị buộc phải xuất bản nội dung của gói. Bạn có thể thực hiện việc này bằng cách "gắn thẻ" chúng khi gọi phương thức

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

07 từ nhà cung cấp dịch vụ của gói. Ví dụ: hãy sử dụng các thẻ để xác định hai nhóm xuất bản cho gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

80 [

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

77 và

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

78] theo phương pháp

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

03 của nhà cung cấp dịch vụ của gói

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

0

Giờ đây, người dùng của bạn có thể xuất bản các nhóm này một cách riêng biệt bằng cách tham chiếu thẻ của họ khi thực hiện lệnh

* Bootstrap any package services.

__DIR__.'/../config/courier.php' => config_path['courier.php'],

09

Cách tiếp cận mô-đun trong Laravel là gì?

Phương pháp mô-đun trong Laravel cung cấp một cấu trúc mà từ đó bạn có thể thiết lập mọi thứ đúng cách . Với điều này, mọi mô-đun sẽ chứa nhóm các lớp của nó và có các tuyến/bộ điều khiển/mô hình/khung nhìn riêng, v.v. cấu trúc mặc định. Ứng dụng/http/bộ điều khiển/frontfeatures/*file của tất cả các tính năng.

Làm cách nào để tạo mô-đun trong Laravel?

Chạy lệnh sau để tạo mô-đun. Thay thế . Cũng có thể tạo nhiều mô-đun trong một lệnh. Theo mặc định khi bạn tạo một mô-đun mới, lệnh sẽ thêm một số tài nguyên như bộ điều khiển, lớp mầm, nhà cung cấp dịch vụ, v.v.

Làm cách nào để tạo một gói trong Laravel?

Tạo gói tùy chỉnh Laravel của riêng bạn. Hướng dẫn từng bước .
Kế hoạch và cấu trúc dự án. .
Khởi tạo một gói mới. .
Tạo lớp truyền cảm hứng. .
Kiểm tra Lớp truyền cảm hứng. .
Thêm nhà cung cấp dịch vụ vào gói của bạn. .
Thêm bộ điều khiển vào gói của bạn. .
Thêm tuyến đường vào gói hàng của bạn. .
Thêm lượt xem vào gói của bạn

Chủ Đề