auto_detection
サードパーティのモデルの場所を指定してオーバーライドしながら、一部のバンドルに使用することは可能directories
ですか?
過去数日間、 JMSSerializerBundleを使用して、それを理解し、個人的なプロジェクトで動作させようとしてきましたが、サードパーティのメタデータを使用auto_detection
および指定する方法はないようです。directories
FOSUserBundle Model.User.yml
シリアライゼーション データを書き込むと、たとえば次のようになります。
FOS\UserBundle\Model\User:
access_type: property
exclusion_policy: ALL
xml_root_name: user
properties:
username:
type: string
expose: true
指定されたディレクトリに配置し、次のauto_detection
ように true に設定します。
jms_serializer:
metadata:
debug: true
file_cache:
dir: "%kernel.cache_dir%/serializer"
auto_detection: true
directories:
FOSUserBundle:
namespace_prefix: FOS\UserBundle
path: "@MyBundle/config/serializer/fosuser"
シリアル化メタデータは取得されません。
ただし、同じメタデータ ファイルをFOS/UserBundle/Resources/config/serializer (ベンダー バンドル内) に配置し、構成を次のように変更すると:
jms_serializer:
metadata:
debug: true
file_cache:
dir: "%kernel.cache_dir%/serializer"
auto_detection: true
#directories:
# FOSUserBundle:
# namespace_prefix: FOS\UserBundle
# path: "@MyBundle/config/serializer/fosuser"
シリアル化メタデータが読み取られ、適切に適用されます。