Использование разных стратегий именования для каждого класса с JMS и Symfony 3.4 - PullRequest
0 голосов
/ 07 апреля 2020

Здравствуйте, уважаемое сообщество Stackoverflow,

У меня есть класс 2 PHP (рассматриваемый как DTO), который я использую для установки тела моих HTTP-вызовов. Каждый DTO используется для отдельного API с разными стратегиями именования (одна использует camelCase, а другая использует snake_case.

Я не могу найти решение, чтобы внедрить мой сервизатор JMS с другой стратегией именования для каждого из этих классов.

Вот моя текущая конфигурация для JMS:

jms_serializer:
    default_context:
        serialization:
            serialize_null: false
        deserialization:
            serialize_null: false
    property_naming:
        id: 'jms_serializer.identical_property_naming_strategy'

Вот мое определение служб:

ApiBundle\Services\ApiOneService:
    arguments:
        - '%external_components%'
        - '@jms_serializer'
        - '@monolog.logger'

ApiBundle\Service\ApiTwoService:
    arguments:
        - '%external_components%'
        - '@jms_serializer'

Примечание: я не могу использовать Аннотация @SerializedName, потому что она не работает, если вы задаете стратегию именования, как указано в документации JMS https://jmsyst.com/libs/serializer/master/reference/annotations#serializedname

Есть ли способ «скопировать» мою службу JMS в мой services.yml и просто измените стратегию именования для моего ApiTwoService? Или любое другое решение?

С уважением.

...