Cấu hình

Giới thiệu

Tất cả các files cấu hình của Laravel framework nó sẽ được đặt trong thư mục config. Với mỗi file trong thư mục đó, bạn có thể chỉnh sửa cấu hình theo ý bạn muốn.

Truy cập các giá trị cấu hình

Bạn có thể sễ dàng lấy được giá trị cấu hình ở bất cứ đâu trong ứng dụng của bạn bằng cách sử dụng hàm toàn cục config. Để lấy giá trị cấu hình bạn sử dụng "dấu chấm", bắt đầu bằng tên của file và giá trị bạn muốn lấy. Giá trị mặc định có thể được trả vè nếu thông số về biến cấu hình đó không tồn tại:

$value = config('app.timezone');

Để thiết lập giá trị cấu hình lúc thực thi, bạn truyền vào một mảng config như sau:

config(['app.timezone' => 'America/Chicago']);

Cấu hình môi trường

Thông thường, nó khá là hữu ích khi ứng dụng của bạn có giá trị cấu hình khác nhau trên các môi trường khác nhau. Giả sử, bạn cấu hình giá trị cache trên local của bạn và trên production của bạn khác nhau.

Để làm việc đó, Laravel tận dụng thư viện PHP DotEnv được phát triển bởi Vance Lucas. Khi một ứng dụng mới được cài đặt, tại thư mục gốc sẽ có file .env.example file. Nếu bạn cài bằng Laravel Composer, file đấy sẽ tự động đổi tên thành .env. Nếu không thì bạn cần đổi tên file.

Lấy lại cấu hình môi trường

Tất cả các biến cấu hình sẽ được nạp bởi hàm PHP toàn cục $_ENV khi ứng dụng của bạn nhận request. Tuy nhiên, bạn có thể sử dụng hàm env để nhận giá trị cấu hình của bạn. Thực tế, nếu bạn xem lại các file cấu hình, bạn sẽ thấy một vài biến đã được sử dụng nó rồi:

'debug' => env('APP_DEBUG', false),

Giá trị thứ 2 truyền vào hàm env là "giá trị mặc định". Giá trị truyền vào sẽ được sử dụng nếu không có biến môi trường nào ứng với key đó.

File .env không nên đẩy lên source code ứng dụng của bạn, mỗi một developer / server sử dụng ứng dụng của bạn có thể có các cấu hình khác nhau.

Nếu ứng dụng của bạn phát triển bởi 1 nhóm, bạn có thể tiếp tục lưu lại file .env.example trong ứng dụng. Bằng cách đặt các giá trị vào file này, các thành viên khác của nhóm có thể nhìn thấy được các biến môi trường cần thiết để chạy ứng dụng của bạn.

Xác định môi trường hiện tại

Môi trường hiện tại được xác định thông qua biếnAPP_ENV trong file .env. Bạn có thể lấy biến này thông qua hàm environment trong App facade:

$environment = App::environment();

Ngoài ra bạn có thể truyền tham số vào hàm environment để kiểm tra xem môi trường có giống hay không. Hàm này sẽ trả về true nếu tham số truyền vào giống với biến môi trường:

if (App::environment('local')) {
    // Môi trường local
}

if (App::environment('local', 'staging')) {
    // Môi trường là  local hoặc staging...
}

Cấu hình Caching

Để tăng hiệu năng cho ứng dụng của bạn, bạn nên cache tất cả các file cấu hình bằng cách sử dụng lệnh config:cache Artisan command. Lệnh này sẽ gộp tất cả các file cấu hình trong ứng dụng của bạn thành một file duy nhất để tăng tốc độ tải của framework.

Bạn nên chạy lệnh php artisan config:cache trên con production của ứng dụng của bạn. Bạn không nên chạy nó ở môi trường phát triển nó vì các thông số cấu hình liên tục thay đổi khi phát triển ứng dụng.

Chế độ bảo trì

Khi ứng dụng của bạn ở chế độ bảo trì, một dao diện sẽ được hiển thị cho tất cả request vào ứng dụng của bạn. Thật dễ để "vô hiệu hóa" ứng dụng của bạn trong khi đang cập nhật hoặc bảo trì. Việc bảo trì nằm trong stack middleware cho ứng dụng của bạn. Nếu ứng dụng của bạn ở chế độ bảo trì, MaintenanceModeException sẽ bắn ra một status code là 503.

Để bật chế độ bảo trì, bạn chỉ cần thực thi lệnh down:

php artisan down

Ngoài ra bạn có thể cung cấp các lựa trọn messageretry khi thực hiện lệnh down. Nội dung message được dùng để hiển thị hoặc tạo một thông báo, trong khi giá trị retry sẽ được thiết lập như là giá trị Retry-After HTTP header's.

php artisan down --message='Upgrading Database' --retry=60

Để vô hiệu hóa chế độ bảo trì, sử dụng lệnh up:

php artisan up

Template chế độ bảo trì

Mặc định template chế độ bảo trì nằm tại resources/views/errors/503.blade.php. Bạn có thể thay đổi dao diện sao cho phù hợp với ứng dụng của bạn.

Chế độ bảo trì & Queues

Khi ứng dụng của bạn đang ở chế độ bảo trì, không có queued jobs nào được xử lý. Các jobs sẽ tiếp tục xử lý khi ứng dụng của bạn vô hiệu hóa chế độ bảo trì.

Giải pháp khác cho chế độ bảo trì

Vì chế độ bảo trì yêu cầu ứng dụng của bạn bị down trong vài giây, bạn có thể cân nhắc việc sử dụng cách khác như Envoyer không có thời gian down khi triển khai với Laravel.

Nguồn: https://laravel.com/docs/5.3/configuration