За последние 24 часа нас посетили 22774 программиста и 1271 робот. Сейчас ищут 812 программистов ...

Как объяснить гидратору работу с вложенностью?

Тема в разделе "Прочие вопросы по PHP", создана пользователем mepihindeveloper, 1 апр 2022.

Метки:
  1. mepihindeveloper

    mepihindeveloper Активный пользователь

    С нами с:
    20 ноя 2018
    Сообщения:
    12
    Симпатии:
    1
    Подскажите, пожалуйста, по гидратору. Как использовать его или сам подход для большего уровня вложенности. Допустим, что прилетает плоский массив.

    PHP:
    1. DTO1 состоит из:
    2. int $id;
    3. string $name;
    4. DTO2 $dto2;
    DTO2 состоит из:

    PHP:
    1. string $phone;
    2. string $email;
    3. DTO3 $dto3;
    DTO3 состоит из:

    PHP:
    1. int $id;
    2. string $name;
    Как тогда объяснить гидратору, что куда пихать данные в автоматическом режиме?

    Данные, которые прилетают:

    Код (Text):
    1. id
    2. name
    3. phone
    4. email
    5. order_id
    6. order_name
    Все данные примерные. Ожидается, что гидратор все поймет и можно будет обращаться как-то так:

    PHP:
    1. $dto1->dto2->name
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Гидратору значит. Ладно.
    Попробуйте создать массив со значениями по умолчанию, расставив элементы с ключами, предположительно имеющимися в глобальном массиве, в нужном порядке. Кроме того, объявите новый, пустой массив.
    Далее в цикле обойдите первый массив, если ключ из него имеется в глобальном, то добавляйте в новый, если его там нет, то в новый добавляйте значение по умолчанию из первого.
    И в конце воспользуйтесь например vsprintf()
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.824
    Симпатии:
    736
    Адрес:
    Татарстан
    Кто такой гидратир???
     
  4. mepihindeveloper

    mepihindeveloper Активный пользователь

    С нами с:
    20 ноя 2018
    Сообщения:
    12
    Симпатии:
    1
    Задача гидратора — наполнить объект данными или получить данные из него.