Здравствуйте
использую библиотеку jms/serializer
документация вот
https://jmsyst.com/libs/serializer/master/referenc...
есть некое api оно возвращает xml
иногда так бывает что атрибут какого-то элемента не установлен
примерно так
<element id="3" zone="" period="1-2" />
у меня есть php класс, экземпляр которого я получаю десерализуя xml строку
в этом классе через аннотации мапятся свойства экземпляра на данные xml
все работает как надо НО
я имею такую конструкцию (кусочек)
/**
* @JMS\XmlRoot("element")
*/
final class Element
{
/**
* @JMS\XmlAttribute()
*/
private ?int $zone = null;
}
много опущено, но суть в том что zone="" десериализуется в 0(int)
не могу нагуглить и понять как мне объяснить сериализатору, что так делать не надо
в коде серализатора нашел
// Sometimes data can convey null but is not of a null type.
// Visitors can have the power to add this custom null evaluation
if ($this->visitor instanceof NullAwareVisitorInterface && true === $this->visitor->isNull($data)) {
$type = ['name' => 'NULL', 'params' => []];
}
вроде как он понимает NULL но не могу найти как это описать? (как выбирается visitor)