設定 Laravel 環境是確保應用程式在開發、測試和生產環境中平穩且有效率地運作的關鍵步驟。 Laravel 透過其環境配置系統使這個過程變得簡單。
在本部落格中,我們將介紹如何有效地設定和管理 Laravel 環境。
Laravel 環境配置的核心是位於專案根目錄中的 .env 檔案。此檔案包含定義應用程式設定的鍵值對。
將 API 金鑰和資料庫憑證等敏感資訊保留在原始碼之外。
允許快速更改特定於環境的設定。
支援多種環境(例如本地、登台、生產)。
這是 Laravel 專案的典型 .env 檔案:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:some_random_generated_key APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="Example"
您可以使用 env() 輔助函數存取 Laravel 程式碼中的環境變數。例如:
$debugMode = env('APP_DEBUG'); $databaseName = env('DB_DATABASE');
在生產中,您應該快取您的配置以獲得更好的效能。執行以下命令來快取您的 .env 檔案和其他配置設定:
php artisan config:cache
要清除緩存,請使用:
php artisan config:clear
注意:修改 .env 檔案後,請務必清除並重新快取配置。
Laravel 的 config/ 目錄包含各種設定文件,例如 app.php、database.php 和 mail.php。這些文件允許您集中和組織設定。
不要硬編碼值,而是在這些設定檔中使用 env() 幫助器。例如,在 config/database.php 中:
'mysql' => [ 'host' => env('DB_HOST', '127.0.0.1'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), ],
這種方法可確保靈活性並避免暴露敏感資料。
Laravel 還允許您根據環境覆蓋配置值。例如,您可以在程式碼中使用 App::environment():
if (App::environment('production')) { // Use production-specific settings }
要處理不同的環境(例如本地、暫存、生產),您可以建立特定環境的文件,例如:
.env.local .env.staging .env.production
Laravel 自動載入 .env 文件,但您可以使用 APP_ENV 變數或在執行 Artisan 指令時設定 --env 標誌來指定不同的環境:
APP_NAME=Laravel APP_ENV=local APP_KEY=base64:some_random_generated_key APP_DEBUG=true APP_URL=http://localhost LOG_CHANNEL=stack DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= CACHE_DRIVER=file QUEUE_CONNECTION=sync SESSION_DRIVER=file MAIL_MAILER=smtp MAIL_HOST=mailhog MAIL_PORT=1025 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS="hello@example.com" MAIL_FROM_NAME="Example"
對於進階設置,您可以在伺服器層級設定環境。例如,在 Apache 中,將其新增至您的 .htaccess 檔案:
$debugMode = env('APP_DEBUG'); $databaseName = env('DB_DATABASE');
在 Nginx 中,使用:
php artisan config:cache
將 .env 提交至版本控制
您的 .env 檔案包含敏感訊息,永遠不應提交版本控制。將 .env 加入您的 .gitignore 檔案:
php artisan config:clear
在應用程式邏輯中使用 env()
避免在應用程式程式碼中直接呼叫 env(),因為它僅在初始配置載入期間起作用。相反,使用 config() 存取環境變數:
'mysql' => [ 'host' => env('DB_HOST', '127.0.0.1'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), ],
不在生產環境中快取配置
未能在生產環境中快取設定檔可能會導致應用程式效能降低。
要驗證您的環境設定是否正確,您可以:
檢查應用環境:
if (App::environment('production')) { // Use production-specific settings }
轉儲配置值:
.env.local .env.staging .env.production
使用 Laravel Debugbar 等工具進行本地偵錯和測試。
透過正確設定 Laravel 環境,您可以確保所有開發階段的工作流程順利且安全。請繼續關注第 5 天,我們將探索路由基礎知識並建立您的第一個路由和控制器!
以上是配置 Laravel 日:環境設置的詳細內容。更多資訊請關注PHP中文網其他相關文章!