Deserializadores
Los 9 Deserializers de este paquete cubren únicamente
interfaces/tipos de libredte-lib-core (o de paquetes Derafu
genéricos que Core usa): DocumentBagInterface,
XmlDocumentInterface, CafInterface, CertificateInterface,
EmisorInterface, ReceptorInterface, MandatarioInterface,
DocumentEnvelopeInterface, SiiRequestInterface.
Agregar soporte a una clase nueva
Sigue este orden para decidir qué construir:
- Revisar si la clase ya tiene un
fromArray(array $data): selfestático. Si lo tiene, no hace falta escribir nada:FromArrayDeserializer(el$fallbackdel registro) ya la cubre automáticamente, sin registrar nada enservices.yaml. - Si no lo tiene, ver si ya existe una Factory a la que delegar
(ver
EmisorDeserializer,ReceptorDeserializer,MandatarioDeserializer). - Si no hay Factory, construir el objeto directamente, delegando
los campos que a su vez son objetos en el
ObjectFactoryInterfaceinyectado (verDocumentBagDeserializer). - Si la construcción no tiene una única forma fija, decidir según
qué claves están presentes (ver
CertificateDeserializer, que elige entreloadFromData()/loadFromKeys()). - Todo Deserializer empieza narrowing su entrada con
assertArray()/assertString()(heredados deAbstract\AbstractDeserializer).
DocumentBag no tiene Deserializer propio para sus campos
document y documentType: siempre reciben null. Agregar los
suyos cuando se necesiten.
On this page
Last updated on 16/08/2026
by Anonymous