Laravel: Tìm hiểu về cấu hình configuration

Xin chào các bạn, tiếp tục với loạt bài viết về Laravel 8x thì trong bài viết này mình sẽ cùng các bạn tìm hiểu về cấu hình (configuration) trong Laravel. Nếu bạn chưa cài đặt laravel 8x thì xem bài viết trước nhé.

Giới thiệu

Tất cả các file cấu hình cho Laravel được lưu trong thư mục config. Mỗi thông số đều được ghi chú lại, vì thế hãy xem nội dung các file để làm quen với các thông số mà bạn có thể sử dụng.

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

Hình ảnh file .envThông thường những giá trị trên các môi trường (local, staging, production) là khác nhau, ví dụ như thông tin cấu hình database, thông tin cấu hình upload files, Webservice…
Để giải quyết điều đó Laravel sử dụng thư viện DotEnv để thực hiện điều này. Với một ứng dụng Laravel khi mới cài đặt sẽ có file .env.example. Khi cài đặt dự án thông qua composer thì sẽ tự động tạo file .env. Mặc định Laravel sẽ lấy thông tin cấu hình qua file .env, nếu dự án bạn chưa có thì vui lòng đặt tên lại.

laravel configuration env

Chú ý: File .env chứa thông tin cấu hình quan trọng của ứng dụng vì vậy việc bảo mật nó rất quan trọng, bạn không nên commit hoặc chia sẻ với ai, để tránh trường hợp bị lộ những thông tin nhạy cảm.

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

Bạn có thể dễ dàng truy xuất vào các giá trị cấu hình sử dụng hàm helper config tại bất cứ đâu trong Laravel. Giá trị cấu hình có thể được lấy ra sử dụng cú pháp “.“, bao gồm tên file và tên thông số bạn muốn lấy ra. Giá trị mặc định có thể được trả về nếu thông số về cấu hình đó không tồn tại:

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

Cấu hình caching

Như các bạn đã thấy thì trong folder config có rất là nhiều file, mỗi file chứa một loại cấu hình riêng biệt để người lập trình có thể nhanh chóng tìm thấy thông tin cần thiết nhưng cũng chính vì thế làm cho việc truy cập ứng dụng trở nên chậm hơn. Vì vậy để tăng tốc độ truy cập ứng dụng thì ta nên gộp tất cả những thông tin cấu hình vào một file. Để làm điều đó thì Laravel đã hỗ trợ chúng ta thông qua câu lệnh php artisan config:cache. Sau khi thực thi câu lệnh này thì sẽ sinh ra file config.php nằm trong thư mục bootstrap/cache, file này chứa tất cả thông tin cấu hình trong folder config.

laravel configuration run config cache
Hình ảnh chạy câu lệnh php artisan config:cache

Chú ý: Khi đã chạy câu lệnh php artisan config:cache thì những thông tin cấu hình được lưu trong .env sẽ không được đọc nữa mà thay vào đó sẽ đọc từ file cache được tạo ra từ câu lệnh trên. Vì vậy câu lệnh này thường được dùng ở môi trường production, vì ở môi trường local bạn sẽ thường xuyên thay đổi và cập nhật giá trị trong .env nên sẽ ít được sử dụng.

Chế độ debug

Khi code bạn bị lỗi, mà chưa tìm ra nguyên nhân thì lúc đó ta sẽ sử dụng chế debug để tìm kiếm nguyên nhân gây ra lỗi, khi ở chế độ này những đoạn code bị lỗi sẽ được hiển thị một cách tường minh.
Bạn có thể gán giá trị cho biến APP_DEBUGtrue để bật chế độ debug và false để tắt debug. Biến này được định nghĩa trong file .env.
Chú ý: Bạn nên tắt chế độ debug trong môi trường production để tránh trường hợp code bị lỗi hiển thị ra thông tin nhạy cảm.

Chế độ bảo trì

Thông thường thì lúc làm dự án mình ít thấy sử dụng chế độ bảo trì này, bạn chỉ cần biết là Laravel có hỗ trợ chế độ này.
Để kích hoạt chế độ bảo trì, đơn giản gõ lệnh down:

Tắt chế độ bảo trì:

Ngoài ra còn một số thông tin khác, bạn vui lòng xem thêm tài liệu để biết thêm chi tiết nha.
Khi ứng dụng của bạn ở trong trạng thái bảo trì, không có queued jobs sẽ được thực hiện. Các jobs sẽ tiếp tục được xử lý bình thường khi nào mà ứng dụng không còn trong trạng thái bảo trì nữa.

Như mình nói ở khúc đầu thì lúc làm dự án mình ít thấy sử dụng chế độ bảo trì này, nguyên nhân khi ở chế độ này sẽ làm cho website của bạn bị chết một thời gian và điều đó gây ảnh hưởng đến doanh thu cũng như gây ra những ảnh hưởng không tốt đến từ người dùng khi không truy cập được website. Để giải quyết vấn đề này bạn có thể sử dụng cloud để triển khai dự án Laravel của bạn như AWS, Laravel Vapor, Envoyer.

Tổng kết

Học xong bài này bạn sẽ biết được thông tin cấu hình của Laravel được lưu ở đâu, cách khai báo và truy cập giá trị cấu hình. Biết được cách debug trong dự án, và biết rằng Laravel có chế độ bảo trì. Trong bài học tiếp theo chúng ta sẽ tìm hiểu về cấu trúc thư mục trong Laravel.

Nguồn tài liệu tham khảo:
https://laravel.com/docs/8.x/configuration

Hi vọng sẽ giúp được bạn. Thanks