Ra mắt hai series mới cực hot Trí tuệ nhân tạo A đến ZPython công cụ không thể thiếu khi nghiên cứu Data science, Machine learning.

Kiểm tra biến môi trường Laravel

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

FirebirD

Đam mê Toán học, Lập trình. Sở thích chia sẻ kiến thức, Phim hài, Bóng đá, Cà phê sáng với bạn bè.

Nguồn tài liệu framework Laravel

Hiển thị môi trường hiện hành trong Laravel

0 Bình luận trong "Kiểm tra biến môi trường Laravel"

Thêm bình luận