Можно ли использовать auto_detection
для некоторых пакетов, в то же время переопределяя расположение сторонних моделей, указав для них directories
?
Я играл с JMSSerializerBundle последние пару дней, пытаясь понять это и заставить его работать с личным проектом, и не похоже, что есть способ использовать auto_detection
а также указать directories
для сторонних разработчиков метаданные.
Если я напишу свои Model.User.yml
сериализации 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"
Метаданные сериализации читаются и правильно применяются.