Павел
Ниразу не понадобилось писать нормалайзеры, где надо разные case просто собираем отдельный сериалайзер
Ну т.е. используется каждый раз кастомный сериалайзер с набором номралайзеров и это собирается раздельно? Такое тоже встречал. Еще плюс работа по сборке и комбинации в каждом контроллере, а по сути - обычный класс трансформер.
Ivan
Ну в плане на уровне схемы? Сейчас у меня фактически разделение по хосту-домену, именно по этому принципу идет деление роутов, firewalls тоже по домену
Ivan
Схемы и так к каждому api есть
Shokha
Добрый день! У меня есть такой ДТО, как тут рекурсивно сериализовать $items? тут я не очень понял
Shokha
Сразу 2 вопроса. Во что сериализировать, что не понятно?
чтобы Items тоже был массив с объектами
Сергей
чтобы Items тоже был массив с объектами
ArrayDenormalizer есть в сериализаторе?
Shokha
ArrayDenormalizer есть в сериализаторе?
я юзаю только интерфейс public function __construct( private readonly SerializerInterface $serializer, ) { }
Dmitriy
скорее всего надо установить symfony/property-info
Сергей
да, тут либо денормализатора не хватает, либо тип не извлекается верный.
Dmitriy
https://symfony.com/doc/current/components/serializer.html#installation To use the ObjectNormalizer, the PropertyAccess component must also be installed.
Shokha
да, тут либо денормализатора не хватает, либо тип не извлекается верный.
скорее всего да но он же вместе с серялайзером устанавливается?
Павел
Добрый день! У меня есть такой ДТО, как тут рекурсивно сериализовать $items? тут я не очень понял
Массивы устанавливаются через add методы. Надо добавить addItem с типизацией
Павел
это если не публичные
И публичные тоже вроде
Павел
Типизация массивов в денормалазйере работает через это. Возможно ошибаюсь и есть другой подход, но это работает.
Shokha
У меня с другими проектами такие проблемы не были
Shokha
/** * @var array<int, ItemCommand> */ public array $items; вот так у меня всегда работало
Павел
У меня с другими проектами такие проблемы не были
Ок, тогда возможно надо установить док блоки
Павел
скорее всего надо установить symfony/property-info
Вот это верно подсказали (или property-access), там есть заморочки, что сериалайзер читает или нет докблоки в зависимости от установленных компонентов
Юра
Найди обджект нормалайзер т подампай там supports метод
Юра
В особенности type
Юра
Там должен быть тип типо MyClass[]
Юра
Вроде как
Shokha
Не может быть причина что я использую 6.2 версию фреймворка?
Юра
Кеш удалял?
Юра
Тупой вопрос но мало ли )
Юра
Покажи проперти
Юра
Как оно у тебя
Shokha
на старом проекте смотрит на док блоки даже если докблоке пишу ошибкой тогда кидает эксепшн NotNormalizableValueException на новом нет вообще без розница правильно ли писал я док блоки или нет
Юра
Добавь array $items
Юра
Тайп хинт
Юра
Попробуй ItemCommand[]
Юра
Мало ли
Юра
Только кеш удали
Shokha
все равно
Shokha
груба говоря он не читает док блоки
Юра
Var
Юра
По-моему это не правильно
Санжар
груба говоря он не читает док блоки
Может аннотации сработают? Вместо докблоков ща можно их вроде юзать
Юра
все равно
Так вон же массив
Юра
Что тебе не нравится
Shokha
Так вон же массив
он должен быть массив который содержит объекты(ItemCommand)
Юра
По-моему это не правильно
Затупил это правильно
Юра
он должен быть массив который содержит объекты(ItemCommand)
А что он у тебя содержит? toString делает или что?
Юра
Там массив массивов получается
Shokha
все равно
Вот же сейчас массив который содержит массивов
Юра
С каким-то свойством bouquet
Юра
Ну а что там должно быть
Юра
Что за букет
Юра
По-моему тут проблема с группами сериализации а не массивом
Shokha
composer require symfony/serializer-pack
Shokha
решено
Павел
composer require symfony/serializer-pack
А по итогу что новое поставилось или какие настройки?
Павел
Рефлекшен докблок наверное...
Shokha
Рефлекшен докблок наверное...
phpdocumentor/reflection-docblock phpstan/phpdoc-parser
Павел
Спасибо
꧁༒Dmitry༒꧂
Спасибо
не мучай кота
Павел
не мучай кота
Зря кормлю что-ли
Павел
Да, память атас, писал тут с такой же проблемой, и отвёл был reflection-docblock. Но почему то остался в памяти property info
Павел
Причём у меня была проблема ровно наоборот - я не хотел чтобы собиралось по докблокам, так как падала сборка при uploadfile
Dmitriy
"symfony/property-access": "*", "symfony/property-info": "*",
Санжар
Всем привет. Подскажите, есть ли в Symfony аналог: Arr::except($array, ['except_item']); Или самому хелпер писать?
Vlad
нету
Сергей
array_filter мб?
Сергей
поставь как библиотеку и не ищи аналогов
The Ant
хотя можно и через мап... гоню )