これは私が昨日尋ねたReferencing non-parameter entries in config.ymlの質問のフォローアップです。分散config.ymlの非パラメータエントリの参照
各エンティティに.yml設定ファイルがあるより複雑なケースがあるとします。それぞれには、そのエンティティに関連するロールの階層を持つsecurity.role_hierarchy設定があります。
#user.yml
security:
role_hierarchy: &srh
ROLE_USER_SHOW: ~
ROLE_USER_LIST: ~
ROLE_USER_NEW: ~
ROLE_USER_EDIT_OWN: ~
ROLE_USER_EDIT: ROLE_USER_EDIT_OWN
ROLE_USER_SOFTDELETE_OWN: ~
ROLE_USER_SOFTDELETE: ROLE_USER_SOFTDELETE_OWN
ROLE_USER_DELETE: ~
ROLE_USER_FLAG: ~
ROLE_USER_ALL:
- ROLE_USER_SHOW
- ROLE_USER_LIST
- ROLE_USER_NEW
- ROLE_USER_EDIT
- ROLE_USER_DELETE
- ROLE_USER_SOFTDELETE
- ROLE_USER_FLAG
#group.yml
security:
role_hierarchy: &srh
ROLE_GROUP_SHOW: ~
ROLE_GROUP_LIST: ~
ROLE_GROUP_NEW: ~
ROLE_GROUP_EDIT: ~
ROLE_GROUP_DELETE: ~
ROLE_GROUP_ALL:
- ROLE_GROUP_SHOW
- ROLE_GROUP_LIST
- ROLE_GROUP_NEW
- ROLE_GROUP_EDIT
- ROLE_GROUP_DELETE
easy_admin:
entities:
Group:
form:
fields:
-
property: 'roles'
type: choice
type_options:
expanded: true
multiple: true
choices: *srh
しかし、提示ソリューションは、group.yml
にsecurity.role_hierarchy
にchoices
をリンクし、それだけでROLE_GROUP_*
役割を参照していますので、同じように。 には、security.role_hierarchy
のマージ値が提供され、ROLES_USER_*
、ROLES_GROUP_*
、およびその他すべての定義された役割があるようにしたいと思います。
これは可能ですか?
スカラーの先頭にある '&'と '*'は、YAMLのアンカーとエイリアスのために予約されています。これらは同じ文書内に存在しなければなりません(ファイル内に複数の文書がありますが、 YAML文書)。ほとんどのYAMLパーサでは、アンカー名で要素を見つけることさえできません(round_tripモードで実行しているときはPythonのruamel.yamlパーサーが例外です)。 symfony2はこの構文を使用してこれを解決することはできませんが、異なるYAMLドキュメントからのデータを相互参照する別の方法(構文)を持っている可能性があります。 – Anthon