FuelPHP1.4でFuelEnvをステージング環境に切り替えたら「Error – invalid data source name in COREPATH/classes/database/pdo/connection.php ~」エラーが出た

時のメモ。
FuelPHP1.5でも直っていないっぽい

公式のドキュメントには、ステージング環境の設定は

  1. \Fuel::STAGEをFuel::$envに入れる
  2. それに対応したconfig以下のディレクトリにそれぞれの設定ファイルを設置する

とする!みたいな説明が書いてある(FuelPHP1.5だけど)
でも、実際にダウンロードしたフレームワークの中には「stage」というディレクトリはなく、代わりに「staging」というstageっぽいディレクトリがある。

これがステージング環境の設定だと思ってここに設定を入れてみたら動かなかった。。

coreを調べてみたら、STAGE定数には「stage」記載されている。当然見に行くフォルダも「stage」のものなので「staging」を「stage」に変えたら無事動きました。

紛らわしいなぁ。。

ちなみにstagingディレクトリをそのまま利用する場合は、core以下のfuel.phpを修正すればいける

// fuel/core/ckasses/fuel.php
/**
 * @var  string  constant used for when testing the app in a staging env.
 */
const STAGE = 'staging';