Выражения JMS Serializer не работают в виртуальной собственности с Symfony 3.4

Недавно я глубоко погрузился в JMS Serializer, и хотя мне нравится, как пакет делает многие вещи удобными для разработчика в сериализации/десериализации, но в пакете отсутствует документация по доступным параметрам.

Я пытаюсь разрешить виртуальное свойство с помощью выражений и получаю следующую ошибку.

The property expression_prop on MyPackageName\\SubPackage\\ClassZ requires the expression accessor strategy to be enabled.

Примечание: путь к классу был изменен на фиктивный путь.

Вот часть конфигурации YAML для свойства, которое я пытаюсь создать

 virtual_properties:
     expression_prop:
         exp: object.isUnCategorized()
         serialized_name: is_categorized
         groups: [tr_view]
         type: boolean

А вот часть конфигурации YAML сериализатора JMS в app/config.yaml

jms_serializer:
metadata:
    auto_detection: true
    directories:
        accounting-process:
            namespace_prefix: "DummyBundleName\\SubPAth\\Application\\DTO"
            path: "%kernel.root_dir%/../src/path-to-config-directory"

Обратите внимание, что абсолютный путь снова был заменен из-за его чувствительности.


person Aman    schedule 01.08.2019    source источник


Ответы (1)


Необходимо установить компонент ExpressionLanguage.

Команда для Symfony 3.4:

composer require symfony/expression-language:^3.4

person Artem    schedule 22.07.2020