Comments 5
Мне от этого не полегчало, потому что вложенность у массивов бывает «мама не горюй».
Отсюда вывод: не используйте массивы, используйте DTO и сериализацию. И не надо рассказывать про то что сериализация — это медленно, а DTO — сложно в проектировании. Зато в поддержке получится дешевле на порядок, а разницу можно вложить в железо, если вам вдруг сериализация так сильно на скорость повлияла.
0
я не могу требовать от Яндекса что бы они выдавали мне объекты, бесполезно ждать от fgetcsv() что бы мне выдавались объекты с конкретным набором свойств.
Мне как раз и нужна эта «безопасная» работа с массивами что бы спокойной конструировать DTO, или как то по другому парсить ответы от API и делать другие подобные вещи.
Мне как раз и нужна эта «безопасная» работа с массивами что бы спокойной конструировать DTO, или как то по другому парсить ответы от API и делать другие подобные вещи.
0
я не могу требовать от Яндекса что бы они выдавали мне объекты
Но вы можете превратить json от яндекса в объект самостоятельно, чем-то вроде https://jmsyst.com/libs/serializer
0
Классная наверное штука, только узнал я про неё поздно :)
Вопрос конечно что делать если какое то свойство было, а потом его не стало, это не про Яндекс конкретно, а вообще такое бывает, что иногда один набор параметров в ответе, иногда другой.
И как бы из CSV делать объекты, если у CSV структура вариативная, у одного файла такие колонки, у другого чуть чуть другие.
Обращаешься к свойству, а его нет, и? какой то аналог key_exists() придётся использовать.
В общем согласен, есть альтернативы, но я про них, во первых, не знаю, во вторых, я с ними работать не умею.
Конечно надо делиться альтернативами. У любой статьи самое интересное в коментах :)
Вопрос конечно что делать если какое то свойство было, а потом его не стало, это не про Яндекс конкретно, а вообще такое бывает, что иногда один набор параметров в ответе, иногда другой.
И как бы из CSV делать объекты, если у CSV структура вариативная, у одного файла такие колонки, у другого чуть чуть другие.
Обращаешься к свойству, а его нет, и? какой то аналог key_exists() придётся использовать.
В общем согласен, есть альтернативы, но я про них, во первых, не знаю, во вторых, я с ними работать не умею.
Конечно надо делиться альтернативами. У любой статьи самое интересное в коментах :)
0
Вопрос конечно что делать если какое то свойство было, а потом его не стало
При любом подходе это будет проблемой.В общем случае свойство будет инициализировано null
а вообще такое бывает, что иногда один набор параметров в ответе, иногда другой.
Если говорить о symfony/serializer, то это решается кастомным нормалайзером
И как бы из CSV делать объекты, если у CSV структура вариативная, у одного файла такие колонки, у другого чуть чуть другие.
Для одного файла один объект, для другого — другой.
0
Sign up to leave a comment.
Типобезопасная работа с массивами PHP, часть 2