Bộ đệm cấu hình làm gì trong Laravel?

Laravel có các bộ đệm khác nhau cho các phần khác nhau trong ứng dụng của bạn và do đó, có nhiều cách để xóa bộ đệm Laravel

Làm việc thông minh hơn với Tinkerwell

Viết và chạy PHP ngay lập tức mà không cần làm mới trình duyệt của bạn hoặc tải tệp lên máy chủ web

Tìm hiểu thêm

bộ đệm ứng dụng

Bộ đệm ứng dụng là bộ đệm chính trong Laravel. Nó lưu trữ mọi thứ mà bạn lưu trữ thủ công trong ứng dụng của mình. Bạn chỉ có thể xóa các thành phần cụ thể của bộ đệm nếu bạn sử dụng thẻ hoặc các kho lưu trữ bộ đệm khác nhau. Cách dễ nhất để xóa Laravel cache là thông qua artisan

Xóa bộ đệm của Laravel thông qua lệnh artisan

php artisan cache:clear

Nếu bạn sử dụng nhiều bộ đệm và bạn muốn xóa một cửa hàng cụ thể, bạn có thể chuyển thông số này làm tham số cho lệnh

php artisan cache:clear --store=redis

Bạn có thể xóa các mục đã lưu trong bộ nhớ cache bằng các thẻ cụ thể bằng lệnh

php artisan cache:clear --tags=tag1,tag2

Xóa bộ đệm Laravel theo chương trình

Xóa các mục khỏi bộ đệm theo chương trình dễ dàng như xóa bộ đệm thông qua lệnh thủ công. Ngoài ra bạn có thể sử dụng cache facade để truy xuất cache hoặc sử dụng cache helper

Cache::flush()
cache()->flush()

Xóa các mục đã lưu trong bộ nhớ cache bằng thẻ

php artisan cache:clear --store=redis
3 dễ dàng như xóa một kho lưu trữ bộ nhớ cache cụ thể

cache()->store('redis')->tags('awesome-tag')->flush()

Bất cứ khi nào tôi muốn kiểm tra xem có mục nào trong bộ đệm hay xóa mục đó khỏi bộ đệm không, tôi khởi động Tinkerwell và chạy các lệnh ở trên

Xem bộ đệm

Một phần khác của ứng dụng có bộ đệm là bộ đệm xem. Bộ đệm xem lưu trữ các mẫu Blade đã kết xuất để tăng tốc ứng dụng của bạn. Bạn có thể hiển thị tất cả các chế độ xem theo cách thủ công để tăng hiệu suất bằng cách sử dụng lệnh thủ công cho nó

php artisan view:cache

Nếu bạn sử dụng cách tối ưu hóa này, bạn phải xóa bộ đệm nếu bạn triển khai mã mới, nếu không, Laravel sẽ sử dụng các chế độ xem cũ của bạn và bạn sẽ cố gắng gỡ lỗi này mãi mãi. Bạn có thể xóa view cache của Laravel bằng lệnh

php artisan view:clear

Cấu hình bộ đệm

Laravel khuyên bạn nên lưu vào bộ nhớ đệm các tệp cấu hình của mình để ứng dụng không cần phải duyệt qua tất cả các tệp cấu hình trong khi khởi động khung

Bạn có thể kết hợp tất cả các tệp cấu hình thành một tệp lớn và tối ưu hóa hiệu suất bằng lệnh

________số 8

Đảm bảo xóa bộ đệm này nếu bạn thay đổi cấu hình, chẳng hạn như trong quá trình triển khai sản xuất

php artisan config:clear

bộ đệm sự kiện

Khi chạy trong sản xuất, bộ nhớ đệm Sự kiện và Trình lắng nghe của chúng cho phép xử lý sự kiện hiệu quả. Laravel khuyến nghị cache các event và listener trong quá trình triển khai của bạn – và điều này có nghĩa là bạn cũng phải xóa cache sự kiện

Để lưu trữ các sự kiện và trình nghe, hãy chạy lệnh

php artisan cache:clear --store=redis
4 trong quá trình triển khai của bạn

php artisan cache:clear --store=redis
1

Lệnh

php artisan cache:clear --store=redis
4 tự động xóa tất cả bộ đệm sự kiện, nhưng nếu phải chạy thủ công, bạn có thể thực hiện như sau

php artisan cache:clear --store=redis
0

Bộ đệm định tuyến

Bộ đệm định tuyến là bộ đệm hiệu suất bổ sung mà bạn chỉ muốn sử dụng trong sản xuất và là một phần của quy trình triển khai của mình. Lưu vào bộ nhớ đệm các tuyến đường của bạn giúp giảm đáng kể thời gian đăng ký các tuyến đường của ứng dụng của bạn. Bạn có thể lưu trữ các tuyến đường thông qua

php artisan cache:clear --store=redis
1

Trong trường hợp bạn thay đổi tuyến đường hoặc thử lệnh bộ đệm trong quá trình phát triển, bạn phải xóa bộ đệm tuyến đường nếu không ứng dụng của bạn sẽ không tìm thấy tuyến đường mới. Bạn xóa bộ đệm tuyến đường bằng lệnh

php artisan cache:clear --store=redis
2

tinkerwell. Trình chạy mã cho PHP

Người bạn đồng hành không thể thiếu với IDE yêu thích của bạn. Nhanh chóng lặp lại mã PHP trong ngữ cảnh của ứng dụng web của bạn

Khi bạn chạy

php artisan cache:clear --tags=tag1,tag2
2, một tệp mới sẽ được tạo trong
php artisan cache:clear --tags=tag1,tag2
3. Tệp này sẽ chứa một mảng với tất cả các giá trị cấu hình của ứng dụng của bạn. Bạn có thể xóa nó bằng cách thực hiện
php artisan cache:clear --tags=tag1,tag2
4

Có hai vấn đề phổ biến có thể xảy ra khi sử dụng bộ nhớ đệm cấu hình, có thể dễ dàng tránh được

Không sử dụng trình trợ giúp env bên ngoài tệp cấu hình

Với phương thức trợ giúp

php artisan cache:clear --tags=tag1,tag2
5, bạn có thể đọc các giá trị trực tiếp từ các biến môi trường của mình

Tuy nhiên, sau khi lưu vào bộ đệm các tệp cấu hình, tệp

php artisan cache:clear --tags=tag1,tag2
6 sẽ không được tải nữa. Do đó, phương thức
php artisan cache:clear --tags=tag1,tag2
5 sẽ luôn trả về
php artisan cache:clear --tags=tag1,tag2
8. Điều này có thể gây ra một số vấn đề nghiêm trọng trong ứng dụng của bạn

Chỉ sử dụng trình trợ giúp env trong tệp cấu hình

Chỉ sử dụng trình trợ giúp

php artisan cache:clear --tags=tag1,tag2
5 trong các tệp cấu hình, để có thể đọc được các giá trị từ tệp
php artisan cache:clear --tags=tag1,tag2
6 của bạn và được thêm vào
php artisan cache:clear --tags=tag1,tag2
3 khi chạy
php artisan cache:clear --tags=tag1,tag2
2

Tránh cấu hình bộ nhớ đệm kết hợp với PHPUnit

Một vấn đề khác có thể xảy ra, đó là bộ nhớ đệm cấu hình kết hợp với kiểm tra PHPUnit

PHPUnit cho phép bạn gán giá trị cho các biến môi trường được sử dụng khi chạy thử nghiệm của bạn, thay vì các giá trị từ tệp

php artisan cache:clear --tags=tag1,tag2
6

Chúng có thể được tìm thấy trong

php artisan cache:clear --store=redis
64, và có thể trông như thế này

php artisan cache:clear --store=redis
7

Tuy nhiên, khi bạn lưu cấu hình vào bộ nhớ cache, PHPUnit sẽ đọc các giá trị được lưu trong bộ nhớ cache, thay vì các giá trị được xác định trong

php artisan cache:clear --store=redis
64 cho môi trường thử nghiệm của bạn. Điều này sẽ gây ra một số hành vi không mong muốn

Ví dụ: phần mềm trung gian

php artisan cache:clear --store=redis
66 sẽ không chạy khi
php artisan cache:clear --store=redis
67. Sau khi lưu cấu hình của bạn vào bộ đệm ẩn,
php artisan cache:clear --store=redis
68 sẽ chứa giá trị được xác định trong
php artisan cache:clear --tags=tag1,tag2
6 của bạn, ngay cả khi bạn đang chạy thử nghiệm. Do đó, bạn có thể nhận được
php artisan cache:clear --tags=tag1,tag2
20 khi chạy thử nghiệm tích hợp, vì phần mềm trung gian
php artisan cache:clear --tags=tag1,tag2
21 sẽ được thực thi

Không lưu trữ các tệp cấu hình của bạn trong môi trường mà bạn cũng chạy thử nghiệm với PHPUnit

Quy tắc là không lưu trữ các tệp cấu hình của bạn trong môi trường thử nghiệm. Nếu bạn không có lựa chọn nào khác, bạn có thể chạy

php artisan cache:clear --tags=tag1,tag2
4 hoặc tự động hóa điều này trong
php artisan cache:clear --tags=tag1,tag2
23 của mình bằng cách triển khai phương pháp
php artisan cache:clear --tags=tag1,tag2
24 và xóa cấu hình đã lưu trong bộ nhớ cache của bạn trước mỗi lần kiểm tra