環境
環境のサポートは、FuelPHP やあなたのアプリケーションが、環境設定に基づいて意思決定することを助けます。 FuelPHP 自体は環境設定を使用して、現在有効な環境に基づいて追加の設定をロードしたり上書きしたりします。
環境のリスト
FuelPHP には 4 つの定義済みの環境があります。
-
\Fuel::DEVELOPMENT
開発環境。 -
\Fuel::TEST
テスト環境。 -
\Fuel::STAGING
ステージング環境。 -
\Fuel::PRODUCTION
本番環境。
環境をセットする
環境の設定は、サーバ変数 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
現時点では、 Windows で環境変数を追加するバッチファイルを使わずに、これを行なう方法が分かっていません。 もしご存知でしたら、我々に知らせていただくか、それをこのページに追記する Pull Request を送って下さい!