Serialización a XML
Las instancias de subclases de PersistentObject, o sea las clases que forman parte del modelo de información de una aplicación, pueden ser serializadas a XML. Esta funcionalidad sirve para múltiples propósitos, desde la implementación de servicios web, hasta para testing y debugging. A continuación se muestra un ejemplo de cómo funciona la serialización a XML.Primero declaremos la clase persistente con la que trabajaremos. Nada especial, solo una clase "Persona" con atributos de nombre y edad:
class Persona extends PersistentObject
{
function __construct($args = array (), $isSimpleInstance = false)
{
// Atributos
$this->addAttribute("nombre", Datatypes :: TEXT);
$this->addAttribute("edad", Datatypes :: INT_NUMBER);
// Restricciones
$this->addConstraints("nombre", array (
Constraint :: maxLength(30),
Constraint :: blank(false)
));
$this->addConstraints("edad", array (
Constraint :: between(10, 100)
));
parent :: __construct($args, $isSimpleInstance);
}
....
}
Código de serialización a XML:
// Nueva instancia de Persona
$persona = new Persona(array(
'nombre' => 'Pablo',
'edad' => 29
));
// Carga de clase de serialización de PersistentObjects a XML
YuppLoader::load('core.persistent.serialize', 'XMLPO');
// Serialización e impresión del resultado
echo XMLPO::toXML($persona, true);
Y el restulado será el siguiente:
Pablo 29 Persona 1
Notar que el XML incluye los atributos inyectados de PersistentObject: id, class y deleted.
