Laravel env multiple environments, đặt nhiều biến môi trường
Khi phát triển dự án, bạn nhiều khi cần cài đặt nhiều biến để thích hợp với các cơ sở dữ liệu, các biến cài đặt khác nhau để phù hợp với phiên bản phát triển. Trong ví dụ đơn giản này, mình sẽ trình bày 2 file .local.env và .production.env để miêu tả việc bạn phát triển trên máy local và dự án khi deploy.
Để cấu hình giá trị biến môi trường, chúng ta dùng thư viện DotEnv, nó đã được cài khi bạn khởi tạo Laravel.
$ composer require vlucas/phpdotenv
Các bước thực hiện như sau:
1. Sửa file app.php
Đầu tiên chúng ta tìm tới file bootstrap/app.php
Thêm dòng lệnh require file enviroment.php trước dòng: return $app
require __DIR__.’/enviroment.php’;
return $app;
2. Tạo file enviroment.php
Trong folder bootstrap, nó cùng cấp với file app.php vừa chỉnh sửa
a. Nội dung file enviroment.php
<?php
use Dotenv\Dotenv;
// Tìm và đọc nội dung file .env
// Với biến APP_ENV lấy được, gán giá trị này ở file .env tương ứng
// Load file .env tương ứng đã lấy được
$env = $app->detectEnvironment(function(){
$environmentPath = __DIR__.’/../.env’;
$setEnv = trim(file_get_contents($environmentPath));
if (file_exists($environmentPath))
{
putenv(“$setEnv”);
if (getenv(‘APP_ENV’) && file_exists(__DIR__.’/../.’ .getenv(‘APP_ENV’) .’.env’)) {
$dotenv = new Dotenv(__DIR__.’/../’, ‘.’.getenv(‘APP_ENV’).’.env’);
$dotenv->load();
}
}
});
b. Với file .env.example mặc định, chúng ta copy nó để tạo ra 2 file .local.env và .production.env. Mỗi file được cấu hình tùy theo dự án của bạn.
c. Tiếp theo tạo file .env có nội dung chỉ một dòng
Nếu bạn connect thông tin của dự án đang phát triển ở local:
APP_ENV=local
Nếu bạn connect thông tin của dự án đã deloy:
APP_ENV=production
Bạn nhớ clear config cache và run lại để test kết quả nhé.
php artisan config:clear
php artisan config:cache
Trên đây là cách đơn giản để đặt nhiều biến môi trường trong Laravel, cảm ơn các bạn đã đọc bài viết này.
Bình luận