Pull to refresh

Comments 5

Мне от этого не полегчало, потому что вложенность у массивов бывает «мама не горюй».

Отсюда вывод: не используйте массивы, используйте DTO и сериализацию. И не надо рассказывать про то что сериализация — это медленно, а DTO — сложно в проектировании. Зато в поддержке получится дешевле на порядок, а разницу можно вложить в железо, если вам вдруг сериализация так сильно на скорость повлияла.
я не могу требовать от Яндекса что бы они выдавали мне объекты, бесполезно ждать от fgetcsv() что бы мне выдавались объекты с конкретным набором свойств.
Мне как раз и нужна эта «безопасная» работа с массивами что бы спокойной конструировать DTO, или как то по другому парсить ответы от API и делать другие подобные вещи.
я не могу требовать от Яндекса что бы они выдавали мне объекты

Но вы можете превратить json от яндекса в объект самостоятельно, чем-то вроде https://jmsyst.com/libs/serializer

Классная наверное штука, только узнал я про неё поздно :)
Вопрос конечно что делать если какое то свойство было, а потом его не стало, это не про Яндекс конкретно, а вообще такое бывает, что иногда один набор параметров в ответе, иногда другой.
И как бы из CSV делать объекты, если у CSV структура вариативная, у одного файла такие колонки, у другого чуть чуть другие.
Обращаешься к свойству, а его нет, и? какой то аналог key_exists() придётся использовать.
В общем согласен, есть альтернативы, но я про них, во первых, не знаю, во вторых, я с ними работать не умею.
Конечно надо делиться альтернативами. У любой статьи самое интересное в коментах :)
Вопрос конечно что делать если какое то свойство было, а потом его не стало

При любом подходе это будет проблемой.В общем случае свойство будет инициализировано null


а вообще такое бывает, что иногда один набор параметров в ответе, иногда другой.

Если говорить о symfony/serializer, то это решается кастомным нормалайзером


И как бы из CSV делать объекты, если у CSV структура вариативная, у одного файла такие колонки, у другого чуть чуть другие.

Для одного файла один объект, для другого — другой.

Sign up to leave a comment.

Articles