[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ép
1
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 helper

1
'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àm env trong thư các file cấu hình của bạn (thư mục config). 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àm env đề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ùng env ở 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ệnh

1
php artisan down

Thêm các tùy chọn nào
1
2
php 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 or config 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
Author

Ming

Posted on

2019-11-23

Updated on

2021-04-10

Licensed under

Comments