Cách thiết lập nhiều môi trường cho ứng dụng Laravel 5

Đăng bởi:

Sudo

Đăng ngày:

Jul 24, 2018

Đăng ở:

Tin Tức Công Nghệ

Trong thực tế khi phát triển một ứng dụng web trên framework Laravel - framework được đánh giá là số một hiện nay, bạn có thể sẽ gặp đôi chút khó khăn với việc cấu hình môi trường ứng dụng giữa các lập trình viên trong team, giữa môi trường local trên máy dev và môi trường production triển khai ứng dụng. Trong bài viết này tôi sẽ đưa ra giải pháp cấu hình ứng dụng đa môi trường (multiple environment config).

 

Trong ví dụ được thực hiện sau sẽ đề cập đến 2 môi trường localproduction, các bước thực hiện:

 

1. Mở file .env được tạo tự động bởi Laravel và xóa toàn bộ nội dung sau đó chèn: local hoặc production (hoặc bất cứ môi trường nào mà bạn muốn định nghĩa). File này sẽ là nơi thay đổi khi bạn muốn chuyển sang môi trường khác.

 

2. Tạo file môi trường mới cho phép bạn có môi trường local và production của mình

   - Tạo file có tên .local.env với nội dung tương tự như file .env trước khi xóa nội dung

   - Tạo file có tên .production.env với nội dung tương tự như file .env trước khi xóa nội dung

 

3. Thêm giá trị môi trường mặc định

   - Cho file .local.env: APP_ENV=local

   - Cho file .production.env: APP_ENV=production

 

4. Tìm vào file /bootstrap/app.php chèn vào đoạn code sau bên dưới đoạn:

$app = new IlluminateFoundationApplication(
		realpath(__DIR__.'/../')
	);

đoạn code chèn vào:

$env = $app->detectEnvironment(function(){
		//Gọi file .env và đọc nội dung
		$environmentPath = __DIR__.'/../.env';
		if (file_exists($environmentPath))
		{
			//Nếu tồn tại thì xử lý nội dung và thiết lập môi trường ứng dụng
			$setEnv = trim(file_get_contents($environmentPath));
			putenv('APP_ENV='.$setEnv);
			//Đọc nội dung file config mới và load lại config
			$dotenv = new DotenvDotenv(__DIR__ . '/../', '.' . getenv('APP_ENV') . '.env');
			$dotenv->overload();
		}
	});

 

5. Đoạn mã trên sử dụng, thư viện putenv của php để thiết lập APP_ENV và sau đó sử dụng gói Dotenv bởi vlucas. Tải file mà ta đã tạo và dựa trên nội dung của file .env, ta có thể xác định môi trường nào chúng tôi nên sử dụng.

 

6. Sau đó bạn có thể kiểm tra môi trường nào đang được tải bằng cách sử dụng:

App::environment();

 

Với cách thực hiện trên bạn sẽ dễ dàng linh hoạt thay đổi các thông tin cấu hình ở các môi trường phát triển ứng dụng khác nhau. Trong quá trình triển khai nếu có góp ý hay thắc mắc gì, hãy để lại trong phần bình luận nhé.

default_image
Tác giả: Sudo
ADMIN

Bình luận

Để lại bình luận

Email và số điện thoại sẽ không được công khai. Những trường bắt buộc được đánh dấu *

Repository deleted Your repository has remove
Loading
Bạn cần hỗ trợ?