Usando AMFPHP v1.9b2 con symfony 1.0.x
October 22, 08 by Pedro HernándezHace poco se me dió la oportunidad de comenzar un proyecto que requeria comunicación desde la parte de frontend el usar Flash v9.
Como se esta usando symfony comencé a buscar en el repositorio oficial de symfony si habia ya un plugin que integrara AMF, y efectivamente encontré uno: sfAmfPlugin, el problema es que usa SabreAMF que funciona a partir de la versión 5.1 de php y el cliente de este proyecto solo nos proporciona php v5.0 y el mas cercano compatible con esta versión es AMFPHP.
Luego buscando entre el repositorio antiguo de symfony descubrí que alguien ya habia implementado amfphp con symfony, este plugin es: sfAmfphpPlugin; pero la version que usa de AMFPHP es la 1.2, que fue liberada en el 2006.
Partiendo de su proyecto es que he realizado mejoras, usando la ultima version de AMFPHP: v1.9 beta 2 liberada el 2008-01-20. Entre estas mejoras se encuntran:
- Usa la versión más actual de AMFPHP (1.9 beta2).
- Este plugin trae un modulo que permite habilitarce desde cualquier aplicación para poder acceder al gateway o el browser.
- Se puede acceder al browser de clases que trae hecho en flex.
- Por seguridad no se puede acceder al browser desde un site en producción, pero el gateway se puede acceder libremente.
Para poder usar el plugin debes de hacer lo siguiente:
- Crea un proyecto nuevo en symfony, en este caso la ultima version de symfony de la rama 1.0.x es la 1.0.18.
. - Descarga el plugin que dejo más abajo. De momento no esta en el site oficial de symfony debido a que su creador recién se entera de él :P.
. - Instala el plugin via PEAR como se menciona en el listado 17-16 del libro oficial. Durante ese paso se copiará la carpeta web del plugin a la carpeta web de tu proyecto, solo dejalo así por que alli se encuentra el browser del AMFPHP.
.>> plugin installing web data for plugin >> dir+ D:\www\sf10-dev\web\sfAmfphpPlugin\swf >> dir+ D:\www\sf10-dev\web\sfAmfphpPlugin\swf\browser >> file+ D:\www\sf10-dev\web\sfAmfphpPlugin\swf\browser\AC_OETags.js >> file+ D:\www\sf10-dev\web\sfAmfphpPlugin\swf\browser\history.js >> file+ D:\www\sf10-dev\web\sfAmfphpPlugin\swf\browser\history.swf >> file+ D:\www\sf10-dev\web\sfAmfphpPlugin\swf\browser\index.html >> file+ D:\www\sf10-dev\web\sfAmfphpPlu...rowser\playerProductInstall.swf >> file+ D:\www\sf10-dev\web\sfAmfphpPlu...swf\browser\servicebrowser.mxml >> file+ D:\www\sf10-dev\web\sfAmfphpPlu...\swf\browser\servicebrowser.swf >> file+ D:\www\sf10-dev\web\sfAmfphpPlu...swf\browser\services-config.xml
.
- Ahora habilita los modulos del plugin en la aplicacion que gustes desde su settings.yml:
.all: .settings: # Activated modules from plugins or from the symfony core enabled_modules: [default, sfAmfphpModule]
.
- Ahora agrega las nuevas rutas a tu aplicación desde el routing.yml:
.sf_amfphp_gateway: url: /amfphp/gateway param: { module: sfAmfphpModule, action: gateway } sf_amfphp_browser: url: /amfphp/browser param: { module: sfAmfphpModule, action: browser }
.
Si ahora intentas ingresar a por ejemplo: http://www.myproj.com/frontend_dev.php/amfphp/gateway. Te deberia salir la pagina clasica de AMFPHP diciendo que se instaló correctamente.
Ahora si ingresas a: http://www.sf10-dev.com/frontend_dev.php/amfphp/browser, (recuerda que el browser solo se puede ver desde un entorno de desarrollo) este fallará al cargar debido a que no encuentra la carpeta services.
Para esto entra a la carpeta lib del plugin y copia la carpeta services, finalmente pegala en el lib de tu proyecto. Ahora si vuelve a cargar el browser de AMFPHP y veras los resultados
.
Dejo en descarga el plugin aquí y un proyecto con los ejemplo que vienen para la ultima versión de AMFPHP.
Saludos.






Daily Digest for 2008-10-23 | Pedro Trindade Says: 24.10.08 at 2:01 am
[...] Usando AMFPHP v1.9b2 con symfony 1.0.x | Desarrollo web, inteligencia artificial y otras paranoias. … [...]