設定 Configuration - daniel-qa/Laradock GitHub Wiki

設定 Configuration #

  • 應用程式設定
.env 檔
config/ 資料夾

env 檔

.env 是一個常見的 environment variable 設定方式,藉由一個獨立的檔案避免每次都需要重新設定環境變數。

.env 僅能使用 KEY=VALUE 格式,且都需要是字串型式。如果 Value 字串中有包含空白,可以用 "" 將其包括起來。

.利用 env() 這個函式去擷取 environment variable 的值  

 'name' => env('APP_NAME', 'Laravel'),

  • 取得 config 的值

在 Laravel 應用程式中,可以利用 config() 取得設定檔中的值。

<?php

config('app.name', 'Laravel');

config() 的第一個參數表示設定值,第二個參數表示若設定值不存在的預設值。

第一個參數的規則比較複雜一些:以 . 為分隔,第一個 . 之前表示 config/ 下的檔案名稱,第二個之後表示陣列的 Key,如果是多維陣列還可以再往下指定 Key。

<?php

// config/app.php
return [
	'settings' => [
		'foo' => true,
		'bar' => [
			'baz' => false,
		],
	],
];

config('app.settings.foo'); // true
config('app.settings.bar.baz'); // false
config('app.settings.miss'); // NULL
config('app.settings.miss', 'default'); // default

外部服務連接

Laravel 所有的設定都位於 config/ 資料夾下,建議先尋找要設定的值位於 config/ 的何處。例如要連接資料庫,設定位於 config/database.php。

<?php

// config/database.php
return [
	  'default' => 'mysql',
	  'connections' => [
				// ...
	      'pgsql' => [
            'driver' => 'pgsql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '5432'),
            'database' => env('DB_DATABASE', 'artiv'),
            'username' => env('DB_USERNAME', 'artiv'),
            'password' => env('DB_PASSWORD', ''),
            'charset' => 'utf8',
            'prefix' => '',
            'prefix_indexes' => true,
            'schema' => 'public',
            'sslmode' => 'prefer',
        ],
				// ...
	  ],
];

從這邊可以看到在 .env 中要如何設定,參考此數的 Key 再到 .env 中設定值即可。