Objetos a través de FLEX y AMFPHP 1.9

31 July, 2008 (16:13) | yacaFx | Flex

AMFPHP
Generalmente cuando, a travez de un lenguaje de programación hacia otro, se desea enviar un objeto cargadito de propiedades se hace transaparente, es decir se envía como objeto y se recibe como objeto; pero al usar AMFPHP para recibir el objeto simplemente no lo interpreta o reconoce y genera un error, y es donde comienza el desespere y nos volvemos mas propensos a quedarnos calvos jejeje.

La solución es enviar el objeto como tal y al recibirlo con AMFPHP hacerlo como arreglo y acceder a las propiedades como indices. Esto pasa pues AMFPHP mapea el objeto como arreglo y al tratar de accesarlo desde php como objeto es cuando genera el error pues para php no existe tal objeto, pero si un arreglo.

Aqui les dejo un ejemplo de como lograrlo usando Remote Objects

1.- Crea un Objeto

private var test:Object = new Object();

test.nombre = 'El nombre';
test.ciudad = 'Tabasco';

2.- Crear un remote object y agregar el objeto como argumento

<mx:arguments>
<obj>{test}</obj>
</mx:arguments>

3.- Recibe el objeto desde php como si fuera un arreglo.

function objComoArreglo($miObjeto)
{
$tamanoArreglo = count($miObjeto);
//Se accesa a los atributos por medio de índices pues el objeto ahora es arreglo
$misAtributos = $miObjeto[0]." + ".$miObjeto[1]." + ";
//Con este for se obtienen los demas atributos
for($i=2;$i<$tamanoArreglo;$i++)
{
$misAtributos = $misAtributos."+'".$miObjeto[$i]."' + ";
}
return $misAtributos ;
}

Espero les sea de utilidad!!

Cualquier duda, comentario o recomendacion de tutos que quieran ver, haganlo saber en la zona de comentarios o suscribanse a la Grupo de Usuarios de RIACTIVE y alli estará toda la comunidad!!

Saludos y… Happy Flexed!!

Bytes by Me

Comentarios

Comentario de Christian Arias
Fecha: November 19, 2008, 12:41 pm

Hola Sergio…

Me gustó mucho este artículo… yo tuve el mismo problema.. pero lo solucioné implementando Value Objects, te pregunto es la mejor solución?, o mejor no seguirme dando en la cabeza y hacerlo de esta manera..?:

http://www.visible-form.com/blog/flex-amfphp-mapping-value-objects/

Te agradezco mucho … tu blog es excelente…

Escribir comentario