Vấn đề
Trong ứng dụng, có những thời điểm bạn cần biết các thiết lập biến môi trường, nhưng bằng cách nào lấy được các thông tin về môi trường đang sử dụng?
Giải pháp
Thật hữu ích khi các giá trị được thiết lập khác nhau dựa trên các môi trường khác nhau nơi mà ứng dụng của bạn đang chạy. Ví dụ, bạn có thể sử dụng một bộ nhớ đệm khác khi đang triển khai ứng dụng thay vì đang trong giai đoạn phát triển ứng dụng. Laravel sử dụng thư viện PHP DotEnv được tạo bởi Vance Lucas, trong ứng dụng Laravel sẽ có một file .env ở thư mục gốc dự án, file này chứa các thiết lập môi trường. Nếu bạn làm việc theo nhóm, bạn có thể tạo ra các file .env.testing chẳng hạn để sử dụng các biến môi trường cho test ứng dụng, file này sẽ được dùng thay cho .env khi thực hiện test bằng PHPUnit hoặc thực hiện các câu lệnh Artisan với tùy chọn --env=testing.
1. Lấy giá trị biến môi trường
Tất cả các biến môi trường trong file sẽ được tải vào biến toàn cục $_ENV, tuy nhiên bạn có thể sử dụng helper env() để lấy các giá trị về biến môi trường.
'debug' => env('APP_DEBUG', false),
Tham số thứ hai là giá trị mặc định, nó được sử dụng khi không có biến môi trường này trong file cấu hình.
2. Xác định môi trường hiện hành
Xác định môi trường hiện hành thông qua biến APP_ENV trong file .env, hoặc bạn có thể sử dụng phương thức environment() trên Facade App:
$environment = App::environment();
Các tham số tên môi trường cũng có thể được truyền vào để kiểm tra, nó sẽ trả về giá trị true nếu đúng:
if (App::environment('local')) {
// The environment is local
}
if (App::environment('local', 'staging')) {
// The environment is either local OR staging...
}
Ngoài ra cũng có một số phương thức khác nhằm kiểm tra môi trường hiện hành như isLocal(), runningUnitTests():
if (App::isLocal())
{
echo "environment=local\n";
}
elseif (App::runningUnitTests())
{
echo "environment=testing\n";
}
Thông tin thêm
Các thiết lập biến môi trường được đóng gói trong IoC container env, do vậy bạn có thể in ra các biến môi trường:
echo app('env');
CÁC BÀI VIẾT KHÁC
0 Bình luận trong "Kiểm tra biến môi trường Laravel"