Author Topic: ¿Por qué no PDO?  (Read 4635 times)

jam1138

  • Newbie
  • *
  • Posts: 2
    • View Profile
¿Por qué no PDO?
« on: October 28, 2008, 12:07:14 am »
Apenas me entero del proyecto y me pareció muy interesante. Mi "problema" es que trabajo con PostgreSQL en lugar de MySQL (;)), y veo que no hay soporte para otra cosa que no sea MySQL.

Me surge la pregunta, si se esta manejando soportar solo PHP5 (¡bien!), ¿por qué no trabajar con PDO?. ¿por qué no utilizar una capa de abstracción ya creada (como la de Zend)?.

 ??? ??? ???

Saludos y felicidades por el proyecto.

ignacio

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
Re: ¿Por qué no PDO?
« Reply #1 on: October 28, 2008, 10:12:52 am »
Hola jam,

Sí hemos pensado utilizar PDO, sobre todo porque leímos que implica una mejora en la performance de las consultas, aunque por el momento no sabemos cuándo estaría disponible esto. No lo tenemos previsto en el corto plazo, pero si tu sabés PHP y quieres ayudarnos podemos tratar de hacerlo. Las funciones de acceso a datos en OpenGoo están encapsuladas en una clase, así que pienso que no serían muchos cambios.

¿Qué opinas?

jam1138

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: ¿Por qué no PDO?
« Reply #2 on: October 28, 2008, 02:40:57 pm »
No es mala idea  :D. No sería ahora, pero... estamos en contacto ;).

¿Aguna objeción contra Zend_DB?
http://framework.zend.com/manual/en/zend.db.html

ignacio

  • Hero Member
  • *****
  • Posts: 1703
    • View Profile
Re: ¿Por qué no PDO?
« Reply #3 on: October 28, 2008, 03:18:59 pm »
Ninguna objeción, siempre y cuando no agregue mucho overhead comparado con PDO.

Si quieres ir investigando, la clase que debes implementar es AbstractDBAdapter en 'environment/library/database/adapters'. MysqlDBAdapter, en la misma carpeta, es un ejemplo de lo que debes hacer (ésta es la clase que se usa hoy en día en OpenGoo para acceso a la base de datos).

En tu caso deberías hacer una clase ZendDBAdpater que extienda a AbstractDBAdapter. Una vez hecha la clase debes configurar OpenGoo para que tilice este adaptador en lugar del de mysql. Para esto debes cambiar la opción DB_ADAPTER en 'config/config.php' que actualmente está como 'mysql' a 'zend'. Al poner 'zend' OpenGoo sabe que debe cargar una clase que se llama ZendDBAdpater.clas.php.

Saludos.