Edited at

Symfony2 環境の切り替え

More than 5 years have passed since last update.


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'))) {