Apoyo a Flex Camp Chile 2008
Dec/080
Cada vez nos apoyan más empresas/personas en el Flex Camp Chile 2008, esto es genial ya que así logramos lo más importante, reunir personas y generar lazos de comunicación, intentaré ir actualizando en este post los distintos sitios que nos están apoyando:
- Andrés Duran: http://andresduran.com/2008/12/03/flexcamp-chile
- Telemática UTFSM: http://www.telematica.utfsm.cl/?p=539
- Radio Bío Bío, invitación Miercoles 3 de Diciembre, 17:30 en vivo
- FayerWayer http://www.fayerwayer.com/2008/12/flexcamp-chile-entrada-liberada/
Ejemplo básico con Flex y AMFPHP
Jun/083
Este es un ejemplo bastante simple de lo que se puede hacer con Flex y AMFPHP, este incluye lo siguiente:
- Envío y recepción de mensajes simples (Típico Hola Mundo)
- Recepción de un arreglo y representación en un DataGrid
- Recepción de un arreglo consultado desde una base de datos (MySQL) con Zend Framework
- Enviar información de un "Formulario" para su inserción a una Tabla (MySQL)
Son bastante simples, no entra en detalle con el manejo de Faults o Excepciones.
Archivos: WebserviceAMFPHP - PruebaBasica-Flex - SQL - PruebaBasica
Notas:
- WebserviceAMFPHP y PruebaBasica son Proyectos que pueden importar a Flex Builder 3
- Deben configurar la ruta de donde se encuentra el WebserviceAMFPHP dentro de config.php en este mismo
- Para no tener problemas, dejar estos proyectos dentro de los htdocs del webserver (recomendado Zend Core) para que la ruta web sea: http://localhost/PruebaBasica y http://localhost/WebserviceAMFPHP
Ojalá les sirva.
Ejemplo Flex + AMFPHP + Zend Framework + MySQL
May/080
El siguiente ejemplo permite la creación de servicios web utilizando AMFPHP , Flex y Zend Framework para la conexión a la base de datos MySQL.
Lo primero es configurar services-config.xml a la dirección que se conectará nuestro cliente, por lo tanto debemos modificar lo siguiente:
<endpoint uri="http://andres.villagranquiroz.cl/gateway.php" class="flex.messaging.endpoints.AMFEndpoint"/>
Luego de esto, debemos configurar al compilador que utilice esta configuración:Botón derecho sobre el Proyecto -> Preferencias -> Flex Compiler -> Additional compiler arguments y agregar -services "services-config.xml"
Con esto ya estamos listos para comenzar el desarrollo, solo destaco lo importante, lo demás pueden verlo en el código.Lo primero que se debe hacer es crear el servicio web dentro de (ver detalles en el ejemplo):/amfphp/services/nuestro_servicio/nuestro_servicio.php
Ahora podremos visualizarlo en el Webservice Browser que contiene AMFPHP (también debe ser compilado con services-config.xml), pueden revisar el mio: http://andres.villagranquiroz.cl/browser/index.html e intentar ejecutarlos.
Recomiendo utilizar Zend Framework para la conexión con la base de datos, en el ejemplo existe un archivo de configuración (config.php) para MySQL, para más información de la utilización de Zend_Db pueden ver la documentación del Framework o revisar la introducción que he preparado aquí: http://andres.villagranquiroz.cl/files/2008/03/01-php-java.pdf posiblemente tengan problemas con PDO_MYSQL ya que lo más probable es que no tengan instalado, recomiendo instalar Zend Core que tiene Apache + PHP y extensiones (incluye PDO) + MySQL, pueden encontrarlo en http://www.zend.com
Volviendo a la interfaz en flex:Primero debemos especificar los Métodos a los cuales queremos conectarnos de la siguiente manera:
<mx:RemoteObject id="remObj" showBusyCursor="true" source="EjemploAMFPHP.prueba_mantenedor" destination="amfphp" fault="faultHandler(event)" >
<mx:method name="Ingresar" result="ingresarHandler(event)" />
<mx:method name="Modificar" result="modificarHandler(event)" />
<mx:method name="CargarDatos" result="cargarDatosHandler(event)" />
<mx:method name="Eliminar" result="eliminarHandler(event)" />
</mx:RemoteObject>
Hemos definido los métodos y sus "Manejadores" (Handlers) los cuales tratarán la respuesta que nos da el Servicio Web luego de llamarlo, ejemplo:
private function ingresarHandler(event:ResultEvent):void {
Alert.show(event.result.toString(), "Resultado");
LimpiarFormulario();
}
Para llamar a los Métodos del Objeto Remoto:
remObj.getOperation("CargarDatos").send();
remObj.getOperation("Ingresar").send(nombre.text, apellido.text); // Si necesita parametros
Para ver el código deben importar a Flex Builder los proyectos o simplemente descomprimirlos y revisarlos.
ASP.NET y la…. en mono / PHP
May/080
Me ha tocado trabajar en estos días con ASP.NET, en mi opinión es "bueno", pero solo bueno ya que a código limpio es bastante complicado para programar (sin ide, muy poco se puede hacer) y en el caso de los Monos como yo, el Addin de Monodevelop para ASP.NET esta en fase de desarrollo (que por cierto, Monodevelop es un muy buen entorno de desarrollo) permite cierta facilidad a la hora de programar, pero por lo que he visto en charlas que he asistido de Microsoft es mucho más sencillo trabajarlo en Visual Studio, por lo cual creo que descarto la opción de utilizarlo a la hora de desarrollar Webs pero es fácil la creación de Webservices.
Quedé con el bichito de disminuir el código repetitivo, en proyectos anteriores en PHP he creado clases que me permiten generar componentes, pero bien rústicos y sin AJAX, cosa que en ASP.NET lo trae prácticamente embebido, por lo cual me he dedicado a buscar algo parecido para PHP, y he encontrado 2 opciones bastante buenas (cabe destacar que tienen mucha más funcionalidad de lo que nombro):
- PRADO : Contiene excelentes componentes como calendarios, grillas, formularios, etc. la desventaja es que tiene un marcado propio (tags) parecido a ASP.NET lo cual es difícil trabajar en algún ide (con Eclipse algo se puede hacer, pero no es nada comodo), de hecho ni lo tiene.
- Tigermouse: También trae varios componentes, no tanto como PRADO, pero es bastante bueno a la hora de manejar señales, eventos, widgets, etc. y lo mejor es muy parecido a como se programa en GTK (de hecho, tiene muy pocas diferencias con PHP-GTK).
Prueben el que más les guste, yo pronto daré mi elección final (quiero trabajar en algún proyecto), pero por ahora me inclino por Tigermouse, obviamente no dejare de utilizar ZendFramework ya que la idea es buscar más herramientas para trabajar con ZF.
Introducción a PHP 5
Mar/080
He agregado la categoría Documentos / Presentaciones en el blog, donde encontrarán toda la información de presentaciones que realizo o que veo en mis ayudantías (Este semestre Ingeniería en Software).
Por ahora encontrarán una Introducción a PHP 5, incluyendo Zend Framework y Zend_Db con conexión a MySQL