IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

[fuelPHP]環境の切り替えと環境別の設定ファイル

fuelPHPでは開発環境、本番環境など環境によって動作時に読み込む設定ファイルを変えることができます。

例えば、fuelphpではDB情報をdb.phpに記述しますが、開発時と本番でのDBが異なる場合に、開発環境用のdb.phpと本番用のdb.phpを別に作成しておき、動作している環境によって読み込むdb.phpファイルを変えるという手筈です。

用意されている4つの環境

クラス定数 環境
Fuel::DEVELOPMENT development 開発環境
Fuel::TEST test テスト環境
Fuel::STAGING staging ステージング環境
Fuel::PRODUCTION production 本番環境

環境の設定(htaccessの場合)

デフォルトではDEVELOPMENT(開発環境)になっています。
例として、PRODUCTION(本番環境)に設定します。
public/.htaccessで環境変数FUEL_ENVの値を変更します。

SetEnv FUEL_ENV production

環境の設定(bootstrap.phpの場合)

/**
 * Your environment.  Can be set to any of the following:
 *
 * Fuel::DEVELOPMENT
 * Fuel::TEST
 * Fuel::STAGING
 * Fuel::PRODUCTION
 */
Fuel::$env = (isset($_SERVER['FUEL_ENV']) ? $_SERVER['FUEL_ENV'] : Fuel::PRODUCTION);

有効になる設定ファイル

設定した環境の値は「fuel/app/config」フォルダ内のサブフォルダに対応します。

以下のようなファイル構成の場合
DEVELOPMENT(開発環境)ではconfig.phpは、
● config/config.php
しかないので、その設定が有効になります。
PRODUCTION(本番環境)では、
● config/config.php
● config/production/config.php
が順に読み込まれるので同じ項目が両方のファイルに設定されている場合は、個別のconfig/production/config.phpの設定が有効になります。

fuel
├── app
│ ├── config
│ │ ├── config.php
│ │ ├── db.php
│ │ ├── development
│ │ │ └── db.php
│ │ ├── production
│ │ │ ├── db.php
│ │ │ └── config.php
│ │ ├── staging
│ │ │ └── db.php
│ │ └── test
│ │ └── db.php