[Laravel] Configuration
Bài viết sẽ nói qua về các biến cấu hình trong Laravel
1. Introduction
Tất cả các file cấu hình của ứng dụng Laravel đều được lưu trữ trong thư mục config
. Mỗi tùy chọn đều được ghi lại, vì vậy hãy xem qua các tệp và làm quen với các tùy chọn có sẵn cho bạn.
2. Environment Configuration
2.1. Environment Variable Types
Tất cả các biến trong .env
đều được chuyển thành string, do vậy 1 vài giá trị riêng đã được tạo ra cho phép bạn trả về phạm vi rộng hơn của các kiểu (một vài giá trị được thêm vào để trả về như ý)1
2
3
4
5
6
7
8
9.env Value env() Value
true (bool) true
(true) (bool) true
false (bool) false
(false) (bool) false
empty (string) ''
(empty) (string) ''
null (null) null
(null) (null) null
Khi biến của bạn có dấu cách, cần đặt nó trong dấu nháy kép1
APP_NAME="My Application"
2.2. Lấy giá trị trong cấu hình
Tất cả các biến liệt kê trong file được lưu vào biến $_ENV PHP
super-global; khi ứng dụng của bạn nhận 1 request. Tuy nhiên bạn có thể sử dụng helper env
để lấy giá trị các biến này trong file môi trường của bạn. Trên thực tế, nếu bạn review các file cấu hình của Laravel, bạn sẽ nhận thấy nó đang sử dụng helper1
'debug' => env('APP_DEBUG', false),
Tham số thứ 2 là giá trị default nếu không tồn tại key trong file config
3. Configuration Caching
Để tăng tốc cho ứng dụng của bạn, bạn nên cache tất cả các file cấu hình của bạn vào 1 file duy nhất bằng cách sử dụng lệnh config:cache
. Lệnh này sẽ kết hợp tất cả các tùy chọn cấu hình của bạn thành 1 file duy nhất và sẽ được framework load 1 cách nhanh chóng.
File cấu hình cache sẽ được sinh ra tại /bootstrap/cahce/config.php
.
Bạn nên thường chạy php artisan config:cache
như một thói quen trong 1 phần deploy sản phẩm. Không nên chạy lệnh trong quá trình phát triển local vì các tùy chọn cấu hình thường sẽ cần phải được thay đổi trong quá trình phát triển ứng dụng của bạn.
NOTE: nếu bạn thực thi lệnh
config:cache
trong quá trình deployment, bạn nên chắc chắn rằng bạn chỉ gọi hàmenv
trong thư các file cấu hình của bạn (thư mụcconfig
). Một khi config đã được cached, file.env
sẽ không được load và tất cả các lời gọi tới hàmenv
đều trả về null (gọi env() ngoài các file cấu hình sẽ trả về null)=> Đúng thật. Khi chạy
php artisan config:cache
thì dùngenv
ở chỗ khác ngoài config toàn ra null :v
4. Maintenance Mode
Khi ứng dụng của bạn muốn maintain, có thể dễ dàng chuyển đổi chỉ với 1 dòng lệnh1
php artisan down
Thêm các tùy chọn nào1
2php artisan down --message="Upgrading Database" --retry=60
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16
(nhìn là biết ý nghĩa rồi nhỉ, khỏi cần giải thích)
Khi đã maintain xong, bật ứng dụng trở lại trạng thái bình thường thôi.1
php artisan up
Tổng kết
- Nếu không sử dụng
cache
cho configuration, thì cấu hình luôn được cập nhật, thêm vào file xong gọi là OK thôi (env
orconfig
helper) - Nếu dùng cache, env ở ngoài thư mục config/ đều sẽ trả về null
php artisan config:clear
=> xóa cache, không dùng cache nữa :D, quay về note 1 :D gọi ở đâu cũng được
[Laravel] Configuration