PHP
Symfony2

Symfony2 環境の切り替え

More than 3 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'))) {