Сериализацация объектов в Json

98
02 апреля 2022, 16:00

У меня есть базовый класс Base, и два класса которые его расширяют Fork,Message. Так же есть класс Page, в котором содержится массив (в котором будут храниться объекты классов Fork,Message) Возможно ли настроить сериализацию\десериализацию класса page в json?

class Base implements{
/**
 * @var string
 */
private $id;
/**
 * @return string
 */
public function getId(): string
{
    return $this->id;
}
/**
 * @param string $id
 */
public function setId(string $id): void
{
    $this->id = $id;
}

}

class Fork extends Base{
/**
 * @var string
 */
private $childrens;
/**
 * @return string
 */
public function getChildrens(): string
{
    return $this->childrens;
}
/**
 * @param string $childrens
 */
public function setChildrens(string $childrens): void
{
    $this->childrens = $childrens;
}
}

class Message extends Base{
/**
 * @var string
 */
private $inputValue;
/**
 * @return string
 */
public function getInputValue(): string
{
    return $this->inputValue;
}
/**
 * @param string $inputValue
 */
public function setInputValue(string $inputValue): void
{
    $this->inputValue = $inputValue;
}
}


class Page{
/**
 * @var Base[]
 */
private $arr = array();
/**
 * @return Base[]
 */
public function getArr(): array
{
    return $this->arr;
}
/**
 * @param Base[] $arr
 */
public function setArr(array $arr): void
{
    $this->arr = $arr;
}
}

Перешел из java, там можно настроить Jackson аннотациями, возможно и в php есть хорошая библиотека для этого дела? Спасибо за помощь.

Answer 1

Есть конечно - воспользуйтесь, например, компонентом Symfony - Serializer

READ ALSO
Много If-ов - нормально?

Много If-ов - нормально?

Написал порядка полусотни if-ов для проверки и присваивания существования значений переменным вида

87
Реализация покупки товара с сайта

Реализация покупки товара с сайта

Будьте добры подсказатьЯ хочу реализовать покупку товара с сайта,но не знаю как конкретно это делается

80
Функция array_rand() в PHP

Функция array_rand() в PHP

Всем приветРешил попробовать написать бота

113