Я уже некоторое время использую компонент сериализатора JMS, и это довольно удобно, но я хотел посмотреть, возможно ли использовать symfony/serializer
компонент вместо
Если я правильно понял, компонент в основном состоит из (де) нормализаторов и (де) сериализаторов. В настоящее время я работаю над импортом записей, которые я получаю в виде файла csv с одной строкой заголовка, а остальные являются фактическими данными.
Теперь есть пара вопросов. Мой CSV-файл содержит список пользователей, но в конце я хочу получить массив десериализованных пользователей, поэтому, думаю, я не смогу получить желаемый результат за один шаг. Вместо этого я сначала использую денормализатор и преобразовываю свой csv в многомерный массив, перебираю его и десериализую объекты из всех строк, шаг за шагом. Имеет ли это смысл?
Далее я спрашиваю себя, чтобы реализовать пользовательский конвертер имен. Опять поправьте меня, если я ошибаюсь, но ObjectNormalizer
использует symfony/property-access
компонент для получения / установки свойств и, следовательно, имена атрибутов входящих данных и объекта, который я хочу десериализовать, должны быть одинаковыми, верно?
Если это так, имеет ли смысл реализовывать преобразователь имен для сопоставления имен атрибутов в csv с именами свойств в моем объекте? В моем CSV у меня есть некоторые странные имена атрибутов, такие как CHRISTIANNAME
который должен быть первым именем. Конечно, в моем десериализованном объекте я хочу иметь осмысленные имена свойств. Я знаю, что с сериализатором JMS можно использовать аннотации и определять отображение там. Является ли пользовательский преобразователь имен подходящим для использования при использовании сериализатора Symfony или есть более простой способ?
Задача ещё не решена.
Других решений пока нет …