2-3
設定專案環境
一、從config/app.php設定專案
- 「檔案→開啟資料夾」,選擇您的專案目錄
- Laravel 專案所用的所有設定檔案都被存放在
config
目錄下
storage
目錄下的所有目錄和 bootstrap/cache
目錄需有寫入權限。
- 開啟
/專案/config/app.php
。如果VS Code已經在專案目錄下,可以直接在終端機用code
命令,快速利用VS Code開啟檔案,例如:
code config/app.php
- 設定
timezone
和 locale
:
'timezone' => 'Asia/Taipei',
'locale' => 'zh-TW',
'fallback_locale' => 'zh-TW',
- 若設定項目中有看到
env('xxx', 'ooo')
的,代表可以直接到 .env
檔設定即可,會以 .env 的設定值優先。後面的ooo
一般並不會生效,除非中.env
沒有xxx
的設定項目,此時ooo
才會有作用。
- 舉例來說
'name' => env('APP_NAME', '線上測驗系統')
並不會真的有作用,因為會去找.env
裡面的APP_NAME=Laravel
設定,所以,屆時呈現的仍是Laravel
而非線上測驗系統
,除非去把.env
裡面的APP_NAME
設定刪除,那才會顯示成線上測驗系統
。
- 如果要取得某個設定值,可以用這樣的方式:
$timezone = config('app.timezone');
- 如果是要在程式運行中,修改某個設定值,可以這樣用:
config(['app.name' => '我的第一個專案']);
二、用.env設定環境
- 同一套程式,可能會用到不同環境:開發環境、測試環境、正式營運環境,不同環境有不同設定,所以,我們可以根據每個伺服器環境修改
.env
設定(不支援中文),尤其是資料庫部份一定要修改,請開啟 /專案/.env
APP_NAME=Exam
//寄信設定(請填入mailtrap的設定資訊)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=5f51684abd9780
MAIL_PASSWORD=9dc25ae9e2b955
MAIL_ENCRYPTION=tls
- 其中可以用中文
APP_NAME=線上測驗系統
- 若值裡頭有空白,需用引號包起來,例如:
APP_NAME="Laravel Exam"
- 如果想要和Homestead共用,那資料庫帳號密碼就按照預設值來設定即可,因此,我們到phpMyAdmin來建立一個新的使用者,帳號為:
homestead
,密碼為secret
,並建立一個同名資料庫即可。
- 自動建立的資料庫,最怕預設編碼錯誤,所以,我們點擊資料庫,並按「操作」修改之(或直接執行:http://localhost/phpmyadmin/db_operations.php?db=homestead),校對部份請選擇「
utf8_unicode_ci
」或「utf8_general_ci
」即可。
.env
不會被送上 git,所以,環境可以使用自己的 .env
設定
- 若想查詢目前使用的是哪個環境,可以按Ctrl+`呼叫出終端機,並利用tinker,以互動的方式來執行一些Laravel程式,如:
php artisan tinker
- 接著輸入以下語法,即可按出目前用的環境設定為何:
App::environment();
-
看起來像這樣:
-
App::environment()
是印出目前的使用環境,若有傳參數進去,那就會判斷是否為該值,例如:
if (App::environment('local')) {
// 判斷環境是否為 local
}
if (App::environment(['local', 'staging'])) {
// 判斷環境是否為 local 或 staging
}
.env
檔案中列出的所有變數將被加載到 PHP 的超級全局變數 $ _ENV
中
- 至此,可以在瀏覽器輸入http://localhost/exam56/public/連線到專案系統試試
三、更新至GitHub
- 按左邊第三個按鈕,輸入修改說明,按打勾送出,然後按三個...,選擇「同步處理」,並依照畫面提示依序輸入GitHub帳號及密碼即可同步至GitHub
- 若不想每次都輸入帳號密碼,可以按Ctrl+`,在終端機輸入以下指令,可以全局儲存帳號。
git config --global credential.helper wincred