Alfonso Marín López

Blog personal de un programador

Symfony y MongoDB

| 0 comments

Recientemente me he visto en la necesidad de realizar un pequeño proyecto en php. No es mi campo de trabajo habitual, pero está resultado ser un campo nuevo e interesante.

Los requerimientos son:

  • Atacar una api de google.
  • Unas cuantas pantallas, tipo listado y formulario.
  • Generar un informe.
  • Enviar unos emails.

Como tecnologías a utilizar, php, ajax, mongodb. Y es esta última la que me ha motivado más. Llevaba tiempo queriendo meterme un poco en el mundo de las bases de datos noSQL. En java ya había utilizado Lucene y me pareció impresionante el rendimiento.

En cuanto a las base de datos noSQL hay un montón, Lucene es del tipo clave-valor y MongoDB esta basado en documentos.

Como tenía que realizarlo en php y no tenía ningunas ganas de hacerlo a pelo, opté por hacerlo utilizando algún framework web existente. Al final me decanté por Symfony, no se si es la mejor opción pero no parece difícil. Me recuerda un poco a struts, aunque no he podido verlo en mas profundidad. Pero se integra bien con MongoDB, y esta se maneja de forma muy parecida a JPA.

La idea que tengo de php es de un lenguaje interpretado que puede ser muy rápido. Pero no acabo de ver si al meter tantas capas y tantos archivos puede repercutir en su rendimiento. Hace unos años utilicé Magento para montar una tienda virtual en un hosting compartido y fue muy dura la experiencia. Algunos recomendaban un servidor dedicado para poder configurarlo y mejorar su rendimiento, pero si tengo que coger un servidor dedicado no se yo si otras tecnologías me serian de más utilidad.

Con lo que si me quedo impresionando en con la velocidad con la que trabaja MongoDB, aquí hay algunas estadísticas muy interesantes. Claro que no tienen transaccionalidad y algunas otras cosas que si tiene una base de datos como MySQL. Pero creo que es un muy buen complemento para ciertas funcionalidades.