Nó xóa bộ đệm cấu hình và lưu lại bộ đệm lại. Nó cũng sẽ xóa bộ đệm tuyến đường. và sau đó lưu trữ lại các tuyến đường và cả các tệp
Nếu bạn đã làm
php artisan route:cache
Và muốn xóa các tuyến đã lưu trong bộ nhớ cache, bạn chỉ cần thực hiện
php artisan route:clear
Đối với tập tin cấu hình bạn có thể làm
php artisan config:clear
Để xem các tập tin bạn có thể làm
php artisan view:clear
Thay thế
Thư mục này là nơi chứa tất cả các tệp được lưu trong bộ nhớ cache trong bất kỳ dự án Laravel nào
bootstrap/cache/
Xóa tệp này sẽ xóa bộ đệm tuyến trên máy chủ của bạn
bootstrap/cache/routes.php
Một sự thay thế khác
Bạn có thể chỉ định xóa tệp bộ đệm cho bộ điều khiển hoặc chạy nội bộ
Bạn chỉ cần đặt dòng sau vào một hành động trong bộ điều khiển và gọi phương thức đó ở một trong các tuyến của bạn
\Artisan::call['route:clear'];
Tối ưu hóa Tải tuyến đường là điều bắt buộc đối với sản xuất
Những ưu điểm là khá rõ ràng. Sau khi lưu vào bộ nhớ đệm, trang web của bạn sẽ nhanh hơn
Nếu bạn đang xây dựng một ứng dụng lớn với nhiều tuyến đường, bạn nên đảm bảo rằng bạn đang chạy tuyến đường. bộ đệm lệnh Artisan trong quá trình triển khai của bạn sẽ cập nhật tệp được lưu trong bộ nhớ cache
Bạn có thể chạy lệnh này trên máy chủ
php artisan route:cache
Hoặc nếu bạn chạy lệnh trên trong máy cục bộ của mình, bạn chỉ cần tải tệp này lên máy chủ của mình bootstrap/cache/routes.php
Bộ nhớ đệm các tuyến giảm tất cả các đăng ký tuyến của bạn thành một cuộc gọi phương thức duy nhất trong một tệp được lưu trong bộ nhớ cache để cải thiện hiệu suất đăng ký tuyến khi đăng ký hàng trăm tuyến
Nhược điểm của caching route là một khi bạn cache các route của trang web, bạn phải cache lại các route của mình mỗi khi bạn thực hiện bất kỳ thay đổi nào đối với
php artisan route:cache
0, nếu không các thay đổi sẽ không hiển thị Tất cả các tệp cấu hình cho khung Laravel được lưu trữ trong thư mục
APP_NAME="My Application"
8. Mỗi tùy chọn đều được ghi lại, vì vậy hãy thoải mái xem qua các tệp và làm quen với các tùy chọn có sẵn cho bạnCác tệp cấu hình này cho phép bạn định cấu hình những thứ như thông tin kết nối cơ sở dữ liệu, thông tin máy chủ thư của bạn, cũng như nhiều giá trị cấu hình cốt lõi khác, chẳng hạn như múi giờ ứng dụng và khóa mã hóa
Tổng quan về ứng dụng
Đang vội?
Nếu bạn chỉ quan tâm đến một phần cụ thể của kết quả tổng quan về ứng dụng, bạn có thể lọc phần đó bằng cách sử dụng tùy chọn
'debug' => env['APP_DEBUG', false],
0php artisan about --only=environment
Cấu hình môi trường
Thường hữu ích khi có các giá trị cấu hình khác nhau dựa trên môi trường mà ứng dụng đang chạy. Ví dụ: bạn có thể muốn sử dụng cục bộ trình điều khiển bộ đệm khác với trình điều khiển bộ đệm mà bạn sử dụng trên máy chủ sản xuất của mình
Để thực hiện điều này một cách chắc chắn, Laravel sử dụng thư viện DotEnv PHP. Trong bản cài đặt Laravel mới, thư mục gốc của ứng dụng của bạn sẽ chứa tệp
'debug' => env['APP_DEBUG', false],
1 xác định nhiều biến môi trường phổ biến. Trong quá trình cài đặt Laravel, tệp này sẽ tự động được sao chép vào 'debug' => env['APP_DEBUG', false],
2Tệp
'debug' => env['APP_DEBUG', false],
2 mặc định của Laravel chứa một số giá trị cấu hình phổ biến có thể khác nhau tùy thuộc vào việc ứng dụng của bạn đang chạy cục bộ hay trên máy chủ web sản xuất. Các giá trị này sau đó được lấy từ các tệp cấu hình Laravel khác nhau trong thư mục APP_NAME="My Application"
8 bằng hàm 'debug' => env['APP_DEBUG', false],
5 của LaravelNếu bạn đang phát triển với một nhóm, bạn có thể muốn tiếp tục bao gồm tệp
'debug' => env['APP_DEBUG', false],
1 cùng với đơn đăng ký của mình. Bằng cách đặt các giá trị giữ chỗ trong tệp cấu hình ví dụ, các nhà phát triển khác trong nhóm của bạn có thể thấy rõ các biến môi trường nào cần thiết để chạy ứng dụng của bạnGhi chú
Bất kỳ biến nào trong tệp2 của bạn đều có thể bị ghi đè bởi các biến môi trường bên ngoài, chẳng hạn như biến môi trường cấp máy chủ hoặc cấp hệ thống
'debug' => env['APP_DEBUG', false],
Bảo mật tệp môi trường
Tệp
'debug' => env['APP_DEBUG', false],
2 của bạn không được cam kết với quyền kiểm soát nguồn của ứng dụng, vì mỗi nhà phát triển/máy chủ sử dụng ứng dụng của bạn có thể yêu cầu một cấu hình môi trường khác. Hơn nữa, đây sẽ là một rủi ro bảo mật trong trường hợp kẻ xâm nhập có quyền truy cập vào kho lưu trữ kiểm soát nguồn của bạn, vì mọi thông tin đăng nhập nhạy cảm sẽ bị lộTuy nhiên, có thể mã hóa tệp môi trường của bạn bằng mã tích hợp sẵn của Laravel. Các tệp môi trường được mã hóa có thể được đặt trong kiểm soát nguồn một cách an toàn
Tệp môi trường bổ sung
Trước khi tải các biến môi trường của ứng dụng của bạn, Laravel xác định xem biến môi trường
'debug' => env['APP_DEBUG', false],
9 đã được cung cấp từ bên ngoài hay đối số CLI use Illuminate\Support\Facades\App;
$environment = App::environment[];
0 đã được chỉ định chưa. Nếu vậy, Laravel sẽ cố tải một tệp use Illuminate\Support\Facades\App;
$environment = App::environment[];
1 nếu nó tồn tại. Nếu nó không tồn tại, tệp 'debug' => env['APP_DEBUG', false],
2 mặc định sẽ được tảiCác loại biến môi trường
Tất cả các biến trong tệp
'debug' => env['APP_DEBUG', false],
2 của bạn thường được phân tích cú pháp dưới dạng chuỗi, vì vậy, một số giá trị dành riêng đã được tạo để cho phép bạn trả về phạm vi loại rộng hơn từ hàm use Illuminate\Support\Facades\App;
$environment = App::environment[];
4'debug' => env['APP_DEBUG', false],
2 Giá trịuse Illuminate\Support\Facades\App;
$environment = App::environment[];
4 Giá trịtrue[bool] true[true][bool] truefalse[bool] false[false][bool] falseempty[string] ''[empty][string] ''null[null] null[null][null] nullNếu bạn cần xác định một biến môi trường có giá trị chứa khoảng trắng, bạn có thể làm như vậy bằng cách đặt giá trị trong dấu ngoặc kép
APP_NAME="My Application"
Truy xuất cấu hình môi trường
Tất cả các biến được liệt kê trong tệp
'debug' => env['APP_DEBUG', false],
2 sẽ được tải vào siêu toàn cầu PHP use Illuminate\Support\Facades\App;
$environment = App::environment[];
8 khi ứng dụng của bạn nhận được yêu cầu. Tuy nhiên, bạn có thể sử dụng hàm 'debug' => env['APP_DEBUG', false],
5 để truy xuất các giá trị từ các biến này trong tệp cấu hình của mình. Trên thực tế, nếu bạn xem lại các tệp cấu hình của Laravel, bạn sẽ nhận thấy nhiều tùy chọn đã sử dụng chức năng này'debug' => env['APP_DEBUG', false],
Giá trị thứ hai được chuyển đến hàm
'debug' => env['APP_DEBUG', false],
5 là "giá trị mặc định". Giá trị này sẽ được trả về nếu không có biến môi trường nào tồn tại cho khóa đã choXác định môi trường hiện tại
Môi trường ứng dụng hiện tại được xác định thông qua biến
'debug' => env['APP_DEBUG', false],
9 từ tệp 'debug' => env['APP_DEBUG', false],
2 của bạn. Bạn có thể truy cập giá trị này thông qua phương pháp if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
3 trên mặt tiền if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
4use Illuminate\Support\Facades\App;
$environment = App::environment[];
Bạn cũng có thể truyền đối số cho phương thức
if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
3 để xác định xem môi trường có khớp với một giá trị nhất định hay không. Phương thức sẽ trả về if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
6 nếu môi trường khớp với bất kỳ giá trị nào đã choif [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
Ghi chú
Phát hiện môi trường ứng dụng hiện tại có thể được ghi đè bằng cách xác định biến môi trường9 cấp máy chủ
'debug' => env['APP_DEBUG', false],
Mã hóa tập tin môi trường
Các tệp môi trường không được mã hóa sẽ không bao giờ được lưu trữ trong kiểm soát nguồn. Tuy nhiên, Laravel cho phép bạn mã hóa các tệp môi trường của mình để chúng có thể được thêm vào kiểm soát nguồn một cách an toàn với phần còn lại của ứng dụng của bạn
mã hóa
Để mã hóa tệp môi trường, bạn có thể sử dụng lệnh
if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
8Chạy lệnh
if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
8 sẽ mã hóa tệp 'debug' => env['APP_DEBUG', false],
2 của bạn và đặt nội dung được mã hóa vào tệp php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
1. Khóa giải mã được trình bày trong đầu ra của lệnh và phải được lưu trữ trong trình quản lý mật khẩu an toàn. Nếu bạn muốn cung cấp khóa mã hóa của riêng mình, bạn có thể sử dụng tùy chọn php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
2 khi gọi lệnhphp artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
Ghi chú
Độ dài của khóa được cung cấp phải khớp với độ dài khóa mà mật mã hóa đang sử dụng yêu cầu. Theo mặc định, Laravel sẽ sử dụng mã hóa3 yêu cầu khóa 32 ký tự. Bạn có thể tự do sử dụng bất kỳ mật mã nào được hỗ trợ bởi bộ mã hóa của Laravel bằng cách chuyển tùy chọn
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
4 khi gọi lệnh
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
Nếu ứng dụng của bạn có nhiều tệp môi trường, chẳng hạn như
'debug' => env['APP_DEBUG', false],
2 và php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
6, thì bạn có thể chỉ định tệp môi trường sẽ được mã hóa bằng cách cung cấp tên môi trường thông qua tùy chọn use Illuminate\Support\Facades\App;
$environment = App::environment[];
0php artisan env:encrypt --env=staging
giải mã
Để giải mã tệp môi trường, bạn có thể sử dụng lệnh
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8. Lệnh này yêu cầu khóa giải mã, mà Laravel sẽ lấy từ biến môi trường php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
9Hoặc, khóa có thể được cung cấp trực tiếp cho lệnh thông qua tùy chọn
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
2php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
Khi lệnh
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8 được gọi, Laravel sẽ giải mã nội dung của tệp php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
1 và đặt nội dung đã giải mã vào tệp 'debug' => env['APP_DEBUG', false],
2Tùy chọn
php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
4 có thể được cung cấp cho lệnh php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8 để sử dụng mật mã mã hóa tùy chỉnhphp artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
Nếu ứng dụng của bạn có nhiều tệp môi trường, chẳng hạn như
'debug' => env['APP_DEBUG', false],
2 và php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
6, bạn có thể chỉ định tệp môi trường sẽ được giải mã bằng cách cung cấp tên môi trường thông qua tùy chọn use Illuminate\Support\Facades\App;
$environment = App::environment[];
0php artisan env:decrypt --env=staging
Để ghi đè lên một tệp môi trường hiện có, bạn có thể cung cấp tùy chọn
php artisan env:encrypt --env=staging
9 cho lệnh php artisan env:encrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
8APP_NAME="My Application"
0Truy cập giá trị cấu hình
Bạn có thể dễ dàng truy cập các giá trị cấu hình của mình bằng cách sử dụng hàm
APP_NAME="My Application"
8 toàn cầu từ bất kỳ đâu trong ứng dụng của bạn. Các giá trị cấu hình có thể được truy cập bằng cú pháp "dấu chấm", bao gồm tên của tệp và tùy chọn bạn muốn truy cập. Giá trị mặc định cũng có thể được chỉ định và sẽ được trả về nếu tùy chọn cấu hình không tồn tạiAPP_NAME="My Application"
1Để đặt giá trị cấu hình trong thời gian chạy, hãy chuyển một mảng tới hàm
APP_NAME="My Application"
8APP_NAME="My Application"
2Bộ nhớ đệm cấu hình
Để tăng tốc độ cho ứng dụng của bạn, bạn nên lưu trữ tất cả các tệp cấu hình của mình vào một tệp duy nhất bằng cách sử dụng lệnh Artisan
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
3. Điều này sẽ kết hợp tất cả các tùy chọn cấu hình cho ứng dụng của bạn thành một tệp duy nhất mà khung có thể tải nhanh chóngThông thường, bạn nên chạy lệnh
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
4 như một phần của quy trình triển khai sản xuất của mình. Không nên chạy lệnh trong quá trình phát triển cục bộ vì các tùy chọn cấu hình sẽ thường xuyên cần được thay đổi trong quá trình phát triển ứng dụng của bạnCảnh báo
Nếu bạn thực thi lệnh3 trong quá trình triển khai của mình, bạn nên đảm bảo rằng bạn chỉ đang gọi hàm
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
5 từ bên trong các tệp cấu hình của mình. Khi cấu hình đã được lưu vào bộ đệm, tệp
'debug' => env['APP_DEBUG', false],
2 sẽ không được tải;
'debug' => env['APP_DEBUG', false],
Chế độ kiểm tra sửa lỗi
Tùy chọn
php artisan env:decrypt --key=3UVsEgGVK36XN82KKeyLFMhvosbZN1aF
9 trong tệp cấu hình php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
0 của bạn xác định lượng thông tin về lỗi thực sự được hiển thị cho người dùng. Theo mặc định, tùy chọn này được đặt để tôn trọng giá trị của biến môi trường php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
1, được lưu trữ trong tệp 'debug' => env['APP_DEBUG', false],
2 của bạnĐể phát triển cục bộ, bạn nên đặt biến môi trường
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
1 thành if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
6. Trong môi trường sản xuất của bạn, giá trị này phải luôn là php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
5. Nếu biến được đặt thành if [App::environment['local']] {
// The environment is local
if [App::environment[['local', 'staging']]] {
// The environment is either local OR staging...
6 trong sản xuất, bạn có nguy cơ để lộ các giá trị cấu hình nhạy cảm cho người dùng cuối ứng dụng của mìnhChế độ bảo trì
Khi ứng dụng của bạn ở chế độ bảo trì, chế độ xem tùy chỉnh sẽ được hiển thị cho tất cả các yêu cầu trong ứng dụng của bạn. Điều này giúp dễ dàng "vô hiệu hóa" ứng dụng của bạn khi nó đang cập nhật hoặc khi bạn đang bảo trì. Kiểm tra chế độ bảo trì được bao gồm trong ngăn xếp phần mềm trung gian mặc định cho ứng dụng của bạn. Nếu ứng dụng đang ở chế độ bảo trì, một phiên bản
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
7 sẽ được đưa ra với mã trạng thái là 503Để bật chế độ bảo trì, hãy thực hiện lệnh
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8 ArtisanNếu bạn muốn tiêu đề HTTP
php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
9 được gửi cùng với tất cả các phản hồi ở chế độ bảo trì, bạn có thể cung cấp tùy chọn php artisan env:decrypt --env=staging
0 khi gọi lệnh php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8. Tiêu đề php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
9 sẽ hướng dẫn trình duyệt tự động làm mới trang sau số giây đã chỉ địnhAPP_NAME="My Application"
3Bạn cũng có thể cung cấp tùy chọn
php artisan env:decrypt --env=staging
3 cho lệnh php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8, tùy chọn này sẽ được đặt làm giá trị của tiêu đề HTTP php artisan env:decrypt --env=staging
5, mặc dù các trình duyệt thường bỏ qua tiêu đề nàyBỏ qua chế độ bảo trì
Để cho phép bỏ qua chế độ bảo trì bằng cách sử dụng mã thông báo bí mật, bạn có thể sử dụng tùy chọn
php artisan env:decrypt --env=staging
6 để chỉ định mã thông báo bỏ qua chế độ bảo trìAPP_NAME="My Application"
4Sau khi đặt ứng dụng ở chế độ bảo trì, bạn có thể điều hướng đến URL của ứng dụng khớp với mã thông báo này và Laravel sẽ cấp cookie bỏ qua chế độ bảo trì cho trình duyệt của bạn
APP_NAME="My Application"
5Khi truy cập vào route ẩn này, bạn sẽ được chuyển đến route
php artisan env:decrypt --env=staging
7 của ứng dụng. Khi cookie đã được cấp cho trình duyệt của bạn, bạn sẽ có thể duyệt ứng dụng bình thường như thể nó không ở chế độ bảo trìGhi chú
Bí mật chế độ bảo trì của bạn thường phải bao gồm các ký tự chữ và số và, tùy chọn, dấu gạch ngang. Bạn nên tránh sử dụng các ký tự có ý nghĩa đặc biệt trong URL, chẳng hạn như8
php artisan env:decrypt --env=staging
Kết xuất trước Chế độ xem bảo trì
Nếu bạn sử dụng lệnh
php artisan env:decrypt --env=staging
9 trong quá trình triển khai, đôi khi người dùng của bạn vẫn có thể gặp lỗi nếu họ truy cập ứng dụng trong khi các phần phụ thuộc Trình soạn thảo hoặc các thành phần cơ sở hạ tầng khác của bạn đang cập nhật. Điều này xảy ra do một phần quan trọng của khung Laravel phải khởi động để xác định ứng dụng của bạn đang ở chế độ bảo trì và hiển thị chế độ xem chế độ bảo trì bằng cách sử dụng công cụ tạo khuôn mẫuVì lý do này, Laravel cho phép bạn kết xuất trước chế độ xem chế độ bảo trì sẽ được trả về ngay khi bắt đầu chu kỳ yêu cầu. Chế độ xem này được hiển thị trước khi bất kỳ phần phụ thuộc nào của ứng dụng của bạn được tải. Bạn có thể kết xuất trước một mẫu bạn chọn bằng cách sử dụng tùy chọn
APP_NAME="My Application"
01 của lệnh php artisan env:decrypt --key=qUWuNRdfuImXcKxZ --cipher=AES-128-CBC
8APP_NAME="My Application"
6Chuyển hướng yêu cầu chế độ bảo trì
Trong khi ở chế độ bảo trì, Laravel sẽ hiển thị chế độ xem chế độ bảo trì cho tất cả các URL ứng dụng mà người dùng cố gắng truy cập. Nếu muốn, bạn có thể hướng dẫn Laravel chuyển hướng tất cả các yêu cầu đến một URL cụ thể. Điều này có thể được thực hiện bằng cách sử dụng tùy chọn
APP_NAME="My Application"
02. Ví dụ: bạn có thể muốn chuyển hướng tất cả các yêu cầu đến URI php artisan env:decrypt --env=staging
7APP_NAME="My Application"
7Tắt chế độ bảo trì
Để tắt chế độ bảo trì, hãy sử dụng lệnh
APP_NAME="My Application"
04Ghi chú
Bạn có thể tùy chỉnh mẫu chế độ bảo trì mặc định bằng cách xác định mẫu của riêng bạn tại05
APP_NAME="My Application"
Chế độ bảo trì & hàng đợi
Khi ứng dụng của bạn ở chế độ bảo trì, sẽ không có công việc xếp hàng nào được xử lý. Các công việc sẽ tiếp tục được xử lý như bình thường sau khi ứng dụng thoát khỏi chế độ bảo trì
Các lựa chọn thay thế cho chế độ bảo trì
Vì chế độ bảo trì yêu cầu ứng dụng của bạn có vài giây thời gian ngừng hoạt động, hãy xem xét các lựa chọn thay thế như Laravel Vapor và Envoyer để hoàn thành việc triển khai không có thời gian ngừng hoạt động với Laravel