Archive for Marzo, 2008

Filed Under (mysql, symfony) by pgodel on Marzo-27-2008

Si no lo sabes, MySQL no tiene tipo de datos BOOLEAN como otras RDBMS. Cuando uno crea una tabla con columnas BOOLEAN, estas son creadas como TINYINT.

Por su parte, Symfony tiene un feature muy bueno: cuando uno crea un admin basado en un modelo, si encuentra una columna BOOLEAN, lo presenta con un checkbox, pero si es TINYINT pone un INPUT TEXT.

Como a mi me gusta generar el modelo usando el MySQL Workbench cuando genero el schema para el symfony utilizando la base de datos creada, symfony encuentra la columna como TINYINT.

Para resolver esto, utilizo el comando sed para hacer el reemplazo en un script de bash:

#!/bash/sh

symfony clear-cache

symfony propel-build-schema

mv config/schema.yml config/schema_bak.yml

sed s/TINYINT/BOOLEAN/ config/schema_bak.yml > config/schema.yml

symfony propel-build-model



Filed Under (symfony) by pgodel on Marzo-26-2008

Al utilizar foreign keys, podemos relacionar distintos objetos. Por ejemplo, si tenemos un mensaje, y dicho mensaje tiene un destinatario, al listar los mensajes podemos listar el nombre del destinatario en vez de su id.

Luego de generar el admin con symfony propel-init-admin, editando el archivo generator.yml del modulo en cuestión:

list:
peer_method: doSelectJoinDestinatario
display: [mensaje, destinatario]



Filed Under (Comentarios, symfony, zendframework) by pgodel on Marzo-26-2008

Recientemente he estado comentando sobre Zend Framework. Este proyecto se ha convertido en muy poco tiempo en algo muy importante para el desarrollo de aplicaciones web, y creo que seguirá creciendo en calidad y cantidad de features.

Pero hace unas semanas comencé un proyecto con una base de datos con muchas tablas, que requiere de un sistema de administración completo. A esta altura, lo que menos me gusta de desarrollar aplicationes web es el trabajo monótono y repetitivo de crear listas y forms para un backend. El Zend Framework todavia no tiene todos los utilitarios para la generación de código, ya sea de objetos relacionados con el modelo (las tablas) o menos aún la generación automática de un sistema de administración de dicha información.

El framework Symfony si lo tiene. Por este motivo, estas ultimas semanas estuve introduciendome a dicho proyecto, que por cierto, tiene una madurez y una calidad considerable, no por nada Yahoo lo eligió para alguno de sus sistemas.

Gracias a esto, ire comentando alguna de mis experiencias con Symfony, algunas serán muy basicas y otras no tanto. Espero sus comentarios.



Filed Under (mysql) by pgodel on Marzo-24-2008

Hace poco comence un nuevo proyecto que contiene muchas tablas en la base de datos. Para hacer la vida un poco más fácil, decidí usar el Mysql Workbench.

Este utilitario permite diseñar bases de datos y tablas visualmente. Una vez terminado, se puede exportar el resultado a SQL para crear todas las tablas.

Una de las opciones más interesantes es que permite relacionar tablas usando foreign keys. Luego de crear unas cuantas tablas, al correr el SQL en el servidor, algunas tablas no eran creadas y obtenía el siguiente error:

Can’t create table errno: 121

Buscando en google encontre varias menciones pero nada concreto hasta que, finalmente, di en el clavo. El nombre de las relaciones son asignadas automáticamente por el programa (se pueden cambiar si es necesario/deseado), resulta que algunas relaciones tenian el mismo nombre. Fue cuestión de cambiar el nombre en la definición de la relación y listo.

Problema solucionado, pero me tomó un buen rato encontrar el significado de este error, no muy bien documentado.



Filed Under (Anuncios, zendframework) by pgodel on Marzo-18-2008

Ayer Lunes fue lanzado el Zend Framework 1.5

Los puntos sobresalientes de esta nueva versión son:

- OpenID : Permite autenticar usuarios de otros sitios.
- Zend_Form : Para la generación de forms.
- Layout : Permite crear páginas con una visual hemogénea de manera más facil.
- Autenticación LDAP
- Mejor soporte de Ajax.
- entre otros.