Sau này khi triển khai hệ thống lên các môi trường như staging, production thì các bạn nên hiểu để deploy hệ thống. Tuy nhiên trong giai đoạn development các bạn có thể bỏ qua cũng được.

I. Tổng quan

Tất cả config của một dự án laravel sẽ được lưu trữ ở folder config.

Để xem các thông tin về configuration

php artisan about

Để xem cụ thể thông tin về environment

php artisan about --only=environment

Để xem details một config cụ thể

php artisan config:show database

II. Về Environment Configuration

1. Giới thiệu chung

Ở root folder các bạn sẽ thấy 2 file

  • .env
  • .env.example

.env là file mà hệ thống sử dụng mặc định.
Tất cả các thông tin về môi trường của hệ thống như database, cache, mail …

Tùy mỗi môi trường của developer mà thông tin trong file này sẽ khác nhau. Vì vậy đừng commit file này lên source chung của dự án khi làm việc nhóm. Thêm nữa là thông tin trong file này là nhạy cảm, rò rỉ ra ngoài là không tốt.

Các bạn có thể commit file .env.example lên, với mục đích chỉ ra các configuration mẫu để các developer khác follow theo.

Tuy không được khuyến khích commit file .env lên nhưng nếu cần thiết các bạn có thể encrypt lại sau đó commit lên.

2. Tạo .env cho các môi trường khác

Mặc định thì hệ thống sử dụng .env và APP_NAME=local.

Tuy nhiên nếu phát sinh môi trường stating chẳng hạn, các bạn có thể hướng dẫn cho hệ thống biết rằng nó sẽ phải load file .env.staging thay vì file .env

Để kiểm tra, đơn giản vào file: <Root_folder>/routes/web.php, các bạn thêm code

use Illuminate\Support\Facades\App;

$environment = App::environment();

dd($environment);

Rồi reload: http://127.0.0.1:8000/
Nếu thấy show ra staging thì có nghĩa các bạn đã change environment chính xác rồi nhé.

3. Lấy ra giá trị của các config

Oke, để lấy ra giá trị các config (trong thư mục app/config) thì làm như sau

use Illuminate\Support\Facades\Config;

$value = Config::get('app.timezone');

Hoặc

use Illuminate\Support\Facades\Config;

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

Mình thích dùng cách đầu tiên, vì đọc nó rõ nghĩa hơn.

Ví dụ, trong file config/app.php có variable timezone

Mình sử dụng file <Root_folder>/routes/web.php để demo nhé. Muốn truy xuất giá trị của timezone, thì đơn giản thêm code vào như sau

use Illuminate\Support\Facades\Config;

$environment = App::environment();
$value = Config::get('app.timezone');
dd($value);

Lại reload lại http://127.0.0.1:8000/, chúng ta sẽ lấy được giá trị của timezone

Hoặc trong config/database.php, các bạn thấy variable “connections”

Muốn truy xuất giá trị, đơn giản làm như thế này

use Illuminate\Support\Facades\Config;

$environment = App::environment();
$value = Config::get('database.connections');
dd($value);

Kết quả như này là ok

Bài này tới đây thôi, chúng ta sẽ tiếp tục ở phần 2 nhé.

See You later !

By HNK

Leave a Reply

Your email address will not be published. Required fields are marked *