Spiga

Archive for October, 2008

BarCamp Lima 2008

October 29, 08 by Pedro Hernández

Pués sí, todo comenzó en uno de los post de la Asociación Nacional de Webmasters Perú y luego César Soplín completó la idea de armar el BarCamp Lima 2008, un evento donde todos están invitados, y sobre todo “no hay turistas”.

El primer encuentro es el sábado 8 de noviembre, y pronto en el wiki del evento estará listo el lugar.

La expectativa es grande y espero conocer a todos los asistentes :)

Usando AMFPHP v1.9b2 con symfony 1.0.x

October 22, 08 by Pedro Hernández

Hace 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:

  1. 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.
    .
  2. 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 .
    .
  3. 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

    .

  4. 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]

    .

  5. 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.

Unknown channel “pear.symfony-project.com” al tratar de contruir plugins en symfony

October 20, 08 by Pedro Hernández

Sucede que desde hace un tiempo tengo symfony instalado via SVN (Subversion, pronto haré un tutorial sobre ello), y tratando de empaquetar un plugin me doy con la grata sorpresa de este error:

> pear package
Error: Unknown channel "pear.symfony-project.com"
Parsing of package.xml from file "package.xml" failed
Cannot package, errors in package file

La solución fue simple, era nada más de agregar el canal pear de symfony al channel-discover como si de instalar symfony via PEAR se tratase (pero solo esto, recordar que ya lo tengo instalado via SVN):

> pear channel-discover pear.symfony-project.com
Adding Channel "pear.symfony-project.com" succeeded
Discovery of channel "pear.symfony-project.com" succeeded

Ahora si intentas empaquetar el plugin todo será perfecto :D :

> pear package
Package sfTestPlugin-1.0.1.tgz done

Por cierto, a la hora de construir un plugin te vendria bien usar el plugin sfPluginManagerPlugin, puedes ver en el repositorio del plugin como lo usan.

Saludos :)