Symfony2 環境の切り替え
- 環境毎に参照するパラメータだったりDBを変更したい
- Staging環境を追加したい
方法
環境毎に参照するparameters.ymlを変更
- config_{env}.yml の要にファイルが配置されている
- config_test.ymlからconfig_dev.ymlを読み込んでいる
- config_dev.ymlからconfig_prod.ymlを読み込んでいる
- config_prod.ymlからconfig.ymlを読み込んでいる
- config.ymlからparameters.ymlを読み込んでいる
- なので、それぞれのconfig_{env}.ymlから、parameters_{env}.ymlを呼び出すよう修正
- config_stg.ymlはconfig_prod.ymlをコピって作る
- AppKernel.phpもちょっと修正
- app.php,app_dev.phpを見習ってapp_stg.phpを作る(割愛)
config.yml
imports:
# コメントアウト
# config_%kernel.environment%.yml を参照させるため
# - { resource: parameters.yml }
- { resource: security.yml }
config_prod.yml,config_dev.yml,config_test.yml,config_stg.yml
imports:
#- { resource: parameters_%kernel.environment%.yml } # 追加:これだと%kernel.environment%を見てくれないケースがあったので以下の通り再定義
- { resource: parameters_dev.yml } # 環境により dev,prodなど変える
- { resource: config.yml }
AppKernel
// stg を追加
if (in_array($this->getEnvironment(), array('dev', 'test', 'stg'))) {