.env 檔案

Laravel 4 .env 檔案

在 Laravel 4 的時候,我們通常會在 /bootstrap/start.php 中,去設定我們的 hostname 是屬於哪一種開發環境,再針對不同的開發環境有不同的設定檔(.env.*.php

<?php
$env = $app->detectEnvironment(array(
  'local' => array(
    'KeJyun-Macbook'
  ),
  'dev' => [],
  'testing' => [],
  'staging' => [],
));

.env.*.php 設定檔通常放在根目錄下,這些檔案不會在版本控制當中

app/
bootstrap/
public/
vendor/
.env.php
.env.local.php
.env.dev.php
.env.testing.php
.env.staging.php

在 Laravel 4 .env 設定檔案長的會像是這樣:

<?php
return [
  'DB_USERNAME' => 'root',
  'DB_PASSWORD' => 'password',
];

我們的 config 檔案就可以使用 $_ENV 去讀取當前環境的設定檔資料

<?php
$_ENV['DB_USERNAME']
$_ENV['DB_PASSWORD']

Laravel 5 .env 檔案

在 Laravel 5 使用 .env 檔案的方式跟 Laravel 4 有很大的不同,在 Laravel 5 中就只有 .env.env.example 這兩個檔案而已,.env 檔案不會在版本控制中,.env.example 則會在版本控制中

自己可以根據自己的環境設定目前的 .env 狀況,而 .env.example 則是可以讓大家參考 .env 的範例用的,自己根據自己目前的環境設定是什麼樣到開發還境(local、dev、stage、production…etc)。

在 Laravel 5 .env 設定檔案長的會像是這樣:

APP_ENV=local
APP_DEBUG=true
APP_KEY=VDqhX1LiHKEReHH16YNEzxUZziOdZVtT

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file

然後我們在設定檔中,我們可以使用 env() 函式去取得我們設定檔案中的設定,會設定像是這樣的設定

// config/app.php
[
  'debug' => env('APP_DEBUG', false),
]

// config/database.php
[  
  'pgsql' => [
      'driver'   => 'pgsql',
      'host'     => env('DB_HOST', 'localhost'),
      'database' => env('DB_DATABASE', 'forge'),
      'username' => env('DB_USERNAME', 'forge'),
      'password' => env('DB_PASSWORD', ''),
      'charset'  => 'utf8',
      'prefix'   => '',
      'schema'   => 'public',
  ],
]

env() 中第一個參數是 .env 檔案中的設定鍵值名稱,第二個參數是預設值,若讀取不到環境設定鍵值則會使用預設值

這樣在每個人的開發環境只要去管理自己的 .env 檔案就好,不需要像 Laravel 4 需要在 config 資料夾中建立各種環境變數設定的資料夾,像是 config/local/database.phpconfig/stage/database.php

參考資料

KeJyun 最新新書推薦
- Laravel 5 for beginner 新手道場:優雅運用框架快速開發 PHP 網站
- Laravel框架开发详解:从零基础到运用框架快速开发PHP网站

Laravel 是 PHP 的框架(Framework),提供了很多開發網站或 API 所需的工具及環境,經過簡單的設定就可以完成資料的處理及顯示,使開發者可以很優雅且快速的開發出各個不同的產品。本書適合有 PHP 基礎的人,但不知道要怎麼選擇框架,或者不用框架的人也能夠明白它的好處。

雖然 WordPress 也能夠架站,但如果有客製化需求,要開發各式各樣的網站,或提供 App 使用的 API,如此一來你只能選擇用框架,而 Laravel 是目前最受歡迎的。

本書將解說為什麼要使用框架,以及理解框架的優缺點後,要怎麼選擇框架,並用框架快速建構一個網站。除非必要,否則書中會避免專業技術用語,盡量使用最生活化易懂的例子及語氣,讓大家更容易進入 Laravel 的世界。

Laravel 5 for beginner 新手道場:優雅運用框架快速開發 PHP 網站

購書連結

Laravel框架开发详解:从零基础到运用框架快速开发PHP网站

購書連結

comments powered by Disqus