Cấu hình Laravel
Giới thiệu
Tất cả các file cấu hình cho Laravel được lưu trong thư mục config
. Mỗi thông số đều được ghi chú lại, vì thế hãy xem nội dung các file để làm quen với các thông số mà bạn có thể sử dụng.
Truy xuất vào các giá trị cấu hình
Bạn có thể dễ dàng truy xuất vào các giá trị cấu hình sử dụng hàm helper config
tại bất cứ đâu trong Laravel. Giá trị cấu hình có thể được lấy ra sử dụng cú pháp "dot", bao gồm tên file và tên thông số bạn muốn lấy ra. Giá trị mặc định có thể được trả về nếu thông số về cấu hình đó không tồn tại:
$value = config('app.timezone');
Để thiết lập giá trị cấu hình lúc thực thi, truyền vào một mảng cho helper config
:
config(['app.timezone' => 'America/Chicago']);
Cấu hình môi trường
Thông thường, có nhiều giá trị cấu hình khác nhau tuỳ thuộc vào môi trường đang chạy sẽ khá là hữu ích. Ví dụ, bạn có thể sử dụng một cache driver khác với khi chạy trên server production. Việc sử dụng môi trường dựa trên cấu hình cũng khá là dễ dàng.
Laravel tận dụng thư viện DotEnv được phát triển Vance Lucas để thực hiện điều này. Với một ứng dụng cài mới, tại thư mục gốc sẽ có chứa một file .env.example
. Nếu bạn cài Laravel thông qua Composer, file này sẽ được tự động đổi tên thành .env
. Nếu không thì bạn cần tự chỉnh lại tên file.
Tất cả các biến liệt kê trong file sẽ được load lên vào trong biến super-global $_ENV
của PHP khi ứng dụng nhận một request. Tuy nhiên, bạn có thể sử dụng hàm helper env
để nhận các giá trị này từ các biến trong file cấu hình. Thực tế thì, nếu bạn xem nội dung file cấu hình của Laravel, bạn sẽ để ý thấy có vài thông số đã sử dụng hàm helper này rồi:
'debug' => env('APP_DEBUG', false),
Giá trị thứ hai truyền vào trong env
là "giá trị mặc định". Giá trị này sẽ được sử dụng nếu APP_DEBUG
không tồn tại trong file .env
.
File .env
là file được dùng để tùy biến cho nhiều ngườikhông nên được lưu trong source control của ứng dụng, vì mỗi lập trình viên hay server sử dụng có thể yêu cầu các thông số môi trường khác nhau.
Nếu bạn đang phát triển với một team, bạn có thể muốn tiếp tục lưu lại file .env.example
trong ứng dụng. Bằng cách đặt các giá trị ví dụ vào trong file cấu hình, các lập trình viên khác trong team có thể thấy rõ ràng biến môi trường nào là cần thiết để chạy ứng dụng.
Xác định môi trường hiện tại
Môi trường hiện tại của ứng dụng được xác định thông qua biến APP_ENV
trong file .env
. Bạn có thể lấy giá trị này thông qua hàm environment
trong App
facade:
$environment = App::environment();
Bạn cũng có thể truyền tham số vào trong hàm environment
để kiểm tra xem môi trường có khớp không. Nếu cần thiết, bạn có thể truyền vào nhiều giá trị cho hàm environment
. Nếu môi trường đúng với giá trị truyền vào, hàm sẽ trả về true
:
if (App::environment('local')) {
// Nếu môi trường là local
}
if (App::environment('local', 'staging')) {
// Nếu môi trường là local hoặc staging...
}
Đối tượng truy xuất ứng dụng cũng có thể được sử dụng thông qua helper app
:
$environment = app()->environment();
Thực hiện cache cấu hình
Để tăng tốc cho ứng dụng, bạn nên cache lại các file cấu hình sử dụng câu lệnh Artisan config:cache
. Lệnh này sẽ gộp tất cả các thông số cấu hình trong ứng dụng vào trong một file để có thể được load lên nhanh chóng.
Bạn nên chạy lệnh php artisan config:cache
trong quá trình triển khai môi trường production. Lệnh này không nên chạy ở môi trường phát triển vì các thông số cấu hình sẽ liên tục bị thay đổi trong khi phát triển.
Chế độ bảo trì
Khi ứng dụng của bạn ở trong chế độ bảo trì, một view riêng được hiển thị cho tất cả các request tới ứng dụng. Điều này làm cho việc "disable" ứng dụng dễ dàng hơn khi bạn đang thực hiện cập nhật hay khi đang thực hiện bảo trì. Việc kiểm tra bảo trì nằm trong stack middleware mặc định. Nếu ứng dụng nằm trong chế độ bảo trì, thì một exception là HttpException
sẽ được bắn ra với status code là 503.
Để kích hoạt chế độ bảo trì, đơn giản gõ lệnh down
:
php artisan down
Bạn cũng có thể cung cấp các tùy chọn message
và retry
cho lệnh down. Giá trị message
có thể được sử dụng để hiển thị hoặc ghi lại log, trong khi giá trị retry
sẽ được đặt làm Retry-After
trong HTTP header:
php artisan down --message="Upgrading Database" --retry=60
Để tắt chế độ bảo trì, sử dụng lệnh up
:
php artisan up
Template ở chế độ bảo trì
Template sử dụng cho chế độ bảo trì nằm tại resources/views/errors/503.blade.php
. Bạn hoàn toàn có quyền thay đổi view này theo ý riêng của bạn. Nếu file này chưa có, bạn hãy tự tạo ra nhé.
Chế độ bảo trì và queue
Khi ứng dụng của bạn ở trong trạng thái bảo trì, queued jobs sẽ ngưng thực hiện. Các jobs sẽ tiếp tục được xử lý bình thường khi nào mà ứng dụng không còn trong trạng thái bảo trì nữa.
Giải pháp khác cho chế độ bảo trì
Vì chế độ bảo trì yêu cầu ứng dụng của bạn bị down trong vài giây, bạn có thể sử dụng cách khác như Envoyer để không có thời gian down khi triển khai với Laravel.
Ủng hộ Chung Nguyễn Blog
Chung Nguyễn Blog sử dụng FlashVPS - Dịch vụ quản trị máy chủ chuyên nghiệp để quản lý VPS
#FlashVPS là dịch vụ cloud panel trên nền tảng web hỗ trợ khách hàng:
- * Quản lý máy chủ số lượng nhiều
- * Không có kinh nghiệm quản lý máy chủ
- * Thích sử dụng giao diện web đơn giản, trực quan hơn terminal
- * Quá nhàm chán với việc ghi nhớ và lặp lại việc gõ các câu lệnh
- * Muốn tự động hóa mọi thao tác
- * Muốn tiết kiệm thời gian quản trị máy chủ
- * Muốn tiết kiệm tiền bạc, nhân lực quản trị máy chủ 👉 https://flashvps.dev
Các bài viết trên website thường xuyên được đăng tải và cập nhật trên trang Facebook Chung Nguyễn Blog hãy tặng cho Chung một LIKE nhé! Mãi yêu các bạn!
813 👍
Bình luận