環境

環境のサポートは、FuelPHP やあなたのアプリケーションが、環境設定に基づいて意思決定することを助けます。 FuelPHP 自体は環境設定を使用して、現在有効な環境に基づいて追加の設定をロードしたり上書きしたりします。

環境のリスト

FuelPHP には 4 つの定義済みの環境があります。

環境をセットする

環境の設定は、サーバ変数 FUEL_ENV をセットするか、 手動で fuel/app/bootstrap.php 内の設定を変更することで設定します。

// Inside app/bootstrap.php

/**
 * あなたの環境。次のいずれかをセットすることができます:
 *
 * Fuel::DEVELOPMENT
 * Fuel::TEST
 * Fuel::STAGING
 * Fuel::PRODUCTION
 *
 * ただし、任意の文字列を使うこともできます(例えば開発者の名前)
 */
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::DEVELOPMENT);

環境と設定

アプリケーションがセットされた環境に基づいて、Config クラスは指定した環境の設定ファイルを検索します。 Config クラスはは現在の環境名が付けられたディレクトリ内にある同じ設定ファイル名を検索します。 こちらがサンプルになります:

app/
  config/
    stuff.php
      development/
        stuff.php
      staging/
        stuff.php
      test/
        stuff.php
      production/
        stuff.php

あなたの環境が \Fuel::DEVELOPMENT に設定されているとき、stuff.php の設定は development/stuff.php とマージされます。 環境が \Fuel::DEVELOPMENT 以外なら、追加の設定ファイルはロードされません。同じことが 他の環境設定にも当てはまります。

この実際のサンプルはデータベース設定です。デフォルトの設定はありません (これはおそらくとても危険です)。 環境固有の設定だけがあります。

Apache で設定する

Apache Web サーバーの SetEnv ステートメントを使ってあなたのアプリケーションの環境設定をおこなうことができます。 ほとんどの場合、環境変数を使って、次のように簡単に設定することができます。また、あなたのサーバーがコマンドラインへのアクセス権を持っていない場合の オプションです。

// このアプリケーションを本番モードで実行する
SetEnv FUEL_ENV production

変数名 FUEL_ENV は大文字で、環境名は小文字で指定する必要があります。

oil 用に環境を設定する

UNIX オペレーティングシステムの使用時は、 oil の開始前に env コマンドで変数を設定できます。

$ env FUEL_ENV=production php oil -v

When using Windows, this has been reported to work:

C:\> set FUEL_ENV=production&php oil -v