2

次の 3 つの symfony2 構成ファイル (非常に簡略化されたもの) があるとします。ここで、現在の環境として AppKernel によってロードされるファイルは最初のファイル app/config/config_env.yml です:

app/config/config_env.yml:

imports:
    - { resource: config2.yml }
    - { resource: config3.yml }
parameters:
    param: one

app/config/config2.yml:

imports:
    - { resource: config4.yml }
parameters:
    param: two

app/config/config3.yml:

imports:
    - { resource: config5.yml }
parameters:
    param: three

app/config/config4.yml:

parameters:
    param: four

app/config/config5.yml:

parameters:
    param: five

コードから param を参照するときはいつでも、param に関連付けられている値 (1、2、3、4、または 5) とその理由を理解するのを手伝ってもらえますか? または、言い換えれば、インポートに関する Symfony2 の優先順位規則とは何ですか?

ありがとう、

ロドリゴ

4

1 に答える 1

0

Let's think about what symfony is doing.

First of all, it loads the config_env.yml.

imports:
    - { resource: config2.yml }
    - { resource: config3.yml }
parameters:
    param: one

Next step: Load the imports.

imports:
    - { resource: config4.yml }
parameters:
    param: two
imports:
    - { resource: config5.yml }
parameters:
    param: three
parameters:
    param: one

Next step: combine them

imports:
    - { resource: config4.yml }
    - { resource: config5.yml }
parameters:
    param: two
    param: three
    param: one

Next step: Load the imports

parameters:
    param: four
parameters:
    param: five
parameters:
    param: two
    param: three
    param: one

Next step: combine them

parameters:
    param: four
    param: five
    param: two
    param: three
    param: one

Now it's important to know that symfony overrides set parameters. So what's the answer? At the end param is one. Try it.

于 2014-01-15T17:51:35.050 に答える