Можно ли для некоторых бандлов использовать 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"
Метаданные сериализации считываются и правильно применяются.