Ultimas actualizaciones

5 views
Skip to first unread message

pabl...@gmail.com

unread,
Jul 31, 2011, 5:35:33 PM7/31/11
to Yupp Framework PHP
Estimados, estoy trabajando en la parte de XML y quería mantenerlos al
tanto de los avances.

Hoy envié código al SVN, aquí pueden ver lo que actualicé:
http://code.google.com/p/yupp/source/list

La principal actualización es sobre el serializador de objetos
persistentes a XML y el nuevo deserializador de XML a objetos
persistentes.

La idea es bien sencilla: tener un formato transportable que pueda
llevar y traer objetos persistentes (PO) de Yupp entre distintas
aplicaciones. Estas aplicaciones no necesariamente deben ser
aplicaciones Yupp, porque el XML generado por Yupp puede adaptarse
fácilmente a cualquier formato que requiera un sistema X, para esto se
utilizan transformaciones XSLT. Hasta ahora estuvo hecho la parte de
pasar de un PO a XML, pero la transformación inversa no estaba
completa (ahora lo está).

Un ejemplo:

// APLICACION 1
// cargo un libro de la base (es un PO)
$id = ...;
$libro = Libro::get( $id );

YuppLoader::load('core.persistent.serialize', 'XMLPO');
$xml = XMLPO::toXML( $libro, true ); // true indica que genera XML de
forma recursiva para el objeto y todos sus objetos relacionados

// Abro un socket y le mando el XML a la APLICACION 2


// APLICACION 2
// Tomo el XML del socket
$xml = ...;

YuppLoader::load('core.persistent.unserialize', 'XML2PO');
$libro2 = XML2PO::toPO( $xml ); // obtengo un PO que debería tener la
misma estructura y datos que $libro



Esta es la idea general. Si la aplicación 2 no fuera una app Yupp,
podría mandarle un formato custom de XML, usando un XSLT en la
creación del XML en la APLICACION 1.
Si en cambio, la APLICACION 1 no es una app Yupp y la APLICACION 2 si
lo es, recibo un XML con cualquier formato y lo debería normalizar al
formato soportado por Yupp. Esto también se hará con XSLT, y es la
única parte que falta en la implementación.

De esta forma podemos implementar servicios de comunicación XML entre
sistemas de forma muy sencilla con Yupp.


Para ver el código que cambió:
http://code.google.com/p/yupp/source/detail?r=710
http://code.google.com/p/yupp/source/detail?r=711


Saludos,
Pablo.
Reply all
Reply to author
Forward
0 new messages