php - para - manual de programacion android pdf
¿El mejor método para la comunicación Flex a PHP? (12)
¿Cuál es el mejor método para la comunicación entre Flex y PHP?
En el pasado, utilizamos AMFPHP con AS2, y funcionó de maravilla en su mayor parte (la ventaja de AMFPHP es que también tiene un modo JSON que puede permitirle utilizar el mismo PHP remoto con JavaScript o con las interfaces de Actionscript).
Sin embargo, parece que AMFPHP ya no se mantiene realmente. Entonces, ¿qué recomienda la gente para reemplazarlo? Hasta ahora, lo que he encontrado es:
- Zend_AMF (parece demasiado complejo para nosotros, de lo contrario no usaremos el framework Zend)
- AMFPHP (se han actualizado algunos para admitir Flex, y parece bastante estable, pero no estoy seguro de soporte a largo plazo)
- XML (AS3 tiene buenas rutinas de manejo de XML, pero es más una molestia en el lado de PHP)
- WebORB (no tengo experiencia con esto)
- Roll-our-own usando JSON o algún otro sistema de serialización de datos a texto (php''s serialize (), XML, etc, etc.)
En general me estoy inclinando hacia AMFPHP, incluso por las desventajas, ya que eso es a lo que estoy acostumbrado. ¿Alguna razón por la que debería considerar cambiar a otra cosa?
No puedo decirte lo que es mejor (porque de todos modos es algo subjetivo), pero lo que puedo hacer es contarte un proyecto mío reciente.
Como esta era una aplicación web muy rica y las solicitudes de datos al servidor serían frecuentes, quería asegurarme de que el tamaño de las solicitudes fuera lo más pequeño posible. Esto significa elegir JSON como el formato.
Luego, debido a la naturaleza de la aplicación y al hecho de que mis desarrolladores de flash / flex estaban a 1000 millas de distancia, necesitaba una API que fuera simple y sin estado. Esto finalmente nos llevó a HTTP + REST.
Por lo tanto, la capa de comunicación de mi aplicación es un conjunto simple de Zend Framework de recursos REST con URI como
user/10
review/15
location/8/reviews
Todos ellos devuelven JSON. También hay un formato JSON común para todos los errores (las excepciones quedan atrapadas y convertidas en objetos JSON) para que el cliente flash pueda manejar fácilmente la falla.
"Si quiere una comunicación rápida y eficiente, le recomiendo que se quede con un protocolo AMF"
Y si desea una comunicación rápida, eficiente y generalizada, vaya con json. Luego, su servicio web estará disponible para flashear, ajax o solicitudes HTTP regulares.
Buena lectura breve de ZendAMF - http://theflashblog.com/?p=441
Para mí esto no es pan comido El framework Zend es uno de los mejores frameworks php disponibles, y ahora puedes hablar con clientes Flash. Termine con el soporte de Adobe, eso es un trato hecho en mi libro.
Alternativas:
WebORB para php http://www.themidnightcoders.com/products/weborb-for-php
AMFPHP http://www.amfphp.com Si lees la url anterior, probablemente sabrás por qué esto ya no está en mi radar.
Si desea una comunicación rápida y eficiente, le recomiendo que se quede con un protocolo AMF en lugar de un formato personalizado REST o JSON.
ZendAMF en realidad no es muy confuso. Mira el tutorial de introducción en GotoAndLearn , es bastante simple.
Y para que lo sepan, algunos de los desarrolladores de AMFPHP se movieron para trabajar en ZendAMF. Entonces, en cierto sentido, ZendAMF es la continuación de AMFPHP.
En todos los proyectos relacionados con Flash y PHP backend, trabajé con solicitudes AMFPHP o XML.
AMFPHP realmente simplifica la comprensión de la aplicación para el mantenimiento futuro, aunque vincula todo a esa tecnología específica e implica una cierta sobrecarga adicional en el lado del servidor: crear todas las clases necesarias.
Según XML, bueno, lo que obtienes aquí son los servicios web REST estándar y no depende de Flash (también puedes extraer datos de una aplicación de escritorio, mientras que usar JSON o cualquier otra tecnología que dependa de los navegadores no permitir eso).
Si quiere un 100% de "soporte" futuro, entonces le recomendaría lo que no necesita ningún tipo de soporte: XML.
Si no está usando un framework como Zend, el AMFPHP normal sigue siendo excelente, aunque solo sea simple. Creo que si te sientes cómodo con esto, ¿por qué no lo haces? La cuestión del papel de estas interfaces AMF es que realmente no necesitan hacer demasiado, y lo que AMFPHP tiene en el mapeo de clases, el análisis de conjuntos de registros en ArrayCollection, un gran rendimiento ... incluso funciona bien con XML, ya que se comprime El navegador de servicios combinado con Charles me ha cubierto también.
No he podido dar mucho sentido a cómo el esfuerzo de ZendAMF se relaciona con el AMFPHP original. Mientras puedo excavar, solo digo que al seguir la lista de correo de AMFPHP en Nabble, leer el blog de Wade Arnold ... simplemente no está del todo claro.
XML en PHP puede ser mucho más simple con SimpleXML .
Solo usaría JSON como devolución para llamadas simples en contra de su API de PHP.
Debería considerar usar Zend AMF. Zend Framework está diseñado para ser un marco de selección y elección, por lo que es completamente correcto seleccionar un único componente (en este caso, Zend AMF) para su aplicación.
Zend AMF es extremadamente fácil de usar. Todo lo que tiene que hacer es especificar las funciones / clases que desea exponer y especificar el mapeo de clase para sus clases de acción-script. Todo lo demás es bastante transparente.
Definitivamente iría por WebORB. Lo usé con .NET en un trabajo anterior que tuve y fue un placer codificarlo. Su facilidad de uso y su consola de administración bien pensada lo hacen muy rápido de aprender, y su documentación es muy completa; Sé que es tentador quedarse con AMF solo porque es lo que ya sabes, pero creo que vale la pena darle una oportunidad a WebORB.
Eche un vistazo a este screencast para la generación de Actionscript con PHP, es bastante elegante.
Aclamaciones.
PHP tiene una función de serialize()
bastante buena, así que para un proyecto reciente que hice (puntajes altos para un juego), utilicé el Serializador de Sephiroth. Hace que la serialización en el lado de Flash sea casi tan fácil como lo es en PHP. El serializador también trata con tipos de datos (a diferencia de json / xml) como AMF.
A la baja, no es tan compacto como AMF, pero eso no es nada que la compresión gzip no pueda manejar.
Este enlace es un screencast que muestra cómo usar WebORB para PHP WDMF (WebORB Data Management for Flex).
AMF tiene una bonita ventaja situacional. Si estás buscando transferir Objetos grandes y complejos, ve con AMF. Pero poco sabe la gente sobre los gastos generales que AMF conlleva cuando transfiere objetos pequeños. Si solo está transfiriendo un objeto con 3 propiedades, el uso de AMF puede triplicar el tamaño de su carga útil.
En una nota lateral, soy un gran defensor de la arquitectura RESTful. Como JSON y AMF son solo representaciones, puede compilar un servicio REST que acepte ambas y negociar la representación real con su cliente en tiempo de ejecución.