2012年4月5日

Yii Framework: yii-environmentを使ってみた

Yii で本番環境、開発環境、テスト環境などの設定をパッと自動で切り替えるにはけっこう苦労します。データベース、コンソール、ログなどの設定が環境によって違うからですが、それを簡単に切り替えられるエクステンションがあるのでテストしてみました。

使うのは yii-environment
http://www.yiiframework.com/extension/yii-environment/

設定等は Wiki が参考になります。まず、最新のを DL して extensions 下に展開。yii-environment という名前にする。

続いて、自分は Windows なので環境変数を設定しました。コントロールパネル → システム → 詳細設定 → 環境変数 → 新規までいって、変数名: YII_ENVIRONMENT 変数値: DEVELOPMENT と入力し、PC を再起動 ... (それぞれの環境によって設定が違うので、詳しくは Wiki を参考にしてください) 。

あとは /extensions/yii-environment/example-config/ と example-index/ の中に、サンプルのファイルがあるので、そのままコピペして、修正していく感じかと思います。/example-index/protected.tests.bootstrap.php は protected/tests/bootstrap.php のもの /example-index/protected.yiic.php は protected/yiic.php のもの。

config ファイルについては main.php を軸にして、それぞれの環境によってファイルが分かれているみたいです。mode_ から始まるファイルはネーミングそのままです (local.php は何に使うか今のところよくわかりません) 。

開発環境から本番環境への切り替えは index.php にて、$env = new Environment('PRODUCTION'); のコメントを外すだけです。$env->showDebug(); のコメントを外すと今どんな感じで設定されているかを print_r でブラウザに表示してくれるので、これを確認しつつ、それぞれの環境の設定をしていくと、わかりやすいかもしれません (ただ、当たり前ですが、本番環境時にはしっかりコメントアウトしてください)。

とりあえず、開発環境でテストして、レンタルサーバーを使って本番環境をテストして
という感じで使ってみましたが、上手くいきました。非常に便利なエクステンションです。

追記
自分の環境では、本番環境で yiic を実行する場合 /protected/yiic.php の $env = new Environment(null, true); を $env = new Environment('PRODUCTION'); に変更しないと、コンソールコマンドが上手く動いてくれませんでした。うーん...。

参考リンク



0 件のコメント:

コメントを投稿