El blog de Thaira

Otro blog más de WordPress

Como bien sabréis, uno de los servicios que en Thaira ofrecemos es el desarrollo de aplicaciones web a medida. Muchas webs que se desarrollan actualmente siguen un mismo patrón (acceso a bases de datos, direcciones web amigables, menús de administración, etc…), por lo que siempre se acaban haciendo tareas repetitivas y/o muy parecidas. Para evitar tener que hacer una y otra vez lo mismo (también conocido como “reinventar la rueda”), hace tiempo que hemos decidido utilizar una herramienta que simplifica el desarrollo y permite que nos concentremos en lo que realmente importa: los detalles, el diseño y la perfección en su proyecto.

symfony-logo

Symfony es un framework PHP5 Open Source para el desarrollo de aplicaciones web. Con éste framework profesional se pueden crear rápidamente aplicaciones web dinámicas, con conexión a bases de datos, usando modernas técnicas como AJAX, RSS, servicios web, entre otras.

Porqué escoger el framework Symfony?

Para el desarrollo de webs dinámicas en PHP hay diferentes frameworks disponibles, por ejemplo symfony, CakePHP, Zend, Solar y CodeIgniter, por citar algunos. En Thaira elegimos el framework symfony porqué es uno de los frameworks más completos y bien integrados, además de tener una gran comunidad Open Source muy activa y profesional. Symfony integra algunas de las mejores ideas y herramientas del mundillo PHP (una capa ORM como Propel o Doctrine, YAML, arquitectura MVC, etc.) y está inspirado en otros frameworks como los citados anteriormente, además del archipopular Ruby on Rails.

Además de éstas ventajas, el framework Symfony se puede extender fácilmente con código propio, o bien con funciones / código de otros frameworks y librerías. De esta forma los desarrolladores ganan tiempo en el proceso de desarrollo de la aplicación y consiguen un código más mantenible y testeable. También hay que mencionar la gran popularidad de la que goza dicho framework, tanto en España como en el mundo entero.

symfony-trends-spainsymfony-trends-world

Entre las múltiples ventajas técnicas de Symfony podríamos citar:

  • Todo el código está orientado a objetos y completamente en PHP5.
  • Implementación del patrón de diseño Modelo-Vista-Controlador (MVC) para una estructura clara y flexible.
  • Abstracción de bases de datos vía Mapeo Relacional de Objetos (ORM): las tablas de la base de datos están disponibles como objetos en el código. La capa ORM está basada en Propel o Doctrine.
  • Generación automática y configurable de “secciones de administración”.
  • Integración de las librerías javascript más populares (jQuery, Prototype, Scriptaculous, YUI, entre otras), las cuales incluyen de serie funciones AJAX listas para usar en nuestra aplicación (autocompletados, drag&drop…).
  • Avanzado sistema de cache que puede integrarse con otros sistemas de caché existentes, como caché de archivos, APC, memcache, y otros.
  • Un parseador YML (YAML) propio, de forma que los ficheros de configuración y la descripción del modelo de datos pueden ser descritos de forma sencilla y rápida (a diferencia de los ficheros XML, con un sinfín de tags de apertura y cierre).
  • Documentación de gran calidad, así como una amplia (y activa) comunidad de desarrolladores.
  • Symfony genera código orientado a objetos para las funcionalidades más comunes del manejo de bases de datos.
  • Genera interfaces CRUD (Crear Leer Actualizar Eliminar) para las tablas de la base de datos.
  • Permite trabajar en distintos ambientes; producción, desarrollo (en el que se activa una barra de herramientas para depuración), test, pero también es posible crear uno propio.
  • Contiene 8.500 test unitarios y funcionales totalmente automáticos, dando como resultado uno de los frameworks más estables y robustos.
  • Muy adecuado para metodologías ágiles de desarrollo como XP (Extreme Programming) o Scrum.

Beneficios de Symfony para el cliente

Las anteriores ventajas són de gran utilidad para el desarrollador, pero cuáles son exactamente los beneficios que le aporta como cliente utilizar un framework como Symfony? Para resumir un poco podríamos citar:

  • Rápido desarrollo de webs “hechas a medida”, construidas con técnicas sobradamente probadas y estándar.
  • Menos errores debido al uso de código fuente ampliamente probado y menos líneas de código (por lo que también hay menos probabilidades de error y menor coste).
  • Implementación de las últimas tendencias, como AJAX y la ideología Web2.0, MVC, framework de Formularios, facilidad para testeo automatizado, etc.
  • Independencia total de base de datos, debido a la capa ORM Propel o Doctrine.
  • Las aplicaciones web resultantes son más sencillas de mantener y/o ampliar debido al uso de la estructura MVC (Model View Controller) que divide la aplicación en capas separadas. De esta forma se facilita (y acelera) a los nuevos desarrolladores la comprensión del código de una web existente.
  • Publicado bajo la licencia open source MIT. Ésta es una licencia libre que permite cualquier uso del framework para fines comercial, y no obliga a que el código resultante se tenga que publicar bajo esta misma licencia open source.
  • Sensio, la empresa detrás del framework Symfony garantiza un soporte al usuario.
  • Calidad y valor contrastados por el uso en grandes proyectos de éxito que reciben millones de visitas mensuales, como Yahoo! Answers, Delicious, y Dailymotion entre otros.

portada_libro_symfony_japones

Si le interesa conocer más a fondo este gran framework, puede acudir a sitios como:

Actualización:
Nos sumamos a las votaciones anuales de sourceforge.net, apoyando (como no podria ser de otra forma) a nuestro framework favorito :)

4 Comentarios

  1. Javier Eguiluz on Mayo 17, 2009 5:49 pm

    Enhorabuena por elegir el framework Symfony :)

    No olvidéis añadir vuestros proyectos al listado oficial de aplicaciones Symfony:

    http://trac.symfony-project.org/wiki/ApplicationsDevelopedWithSymfony

  2. Alfons on Mayo 20, 2009 11:44 am

    Buen artículo de introducción a Symfony. La verdad es que deberíamos empezar a añadir todos los proyectos de una vez. Tenemos muchos e interesantes!

  3. Ricard Luquero on Mayo 20, 2009 2:05 pm

    Muy buena elección. Además es ideal para soportar gran volumen de tráfico. Podéis dar soporte al proyecto en :

    http://sourceforge.net/community/cca09/nominate/?project_name=symfony%20PHP%20framework&project_url=http://www.symfony-project.org/

  4. Albert Blasco on Mayo 22, 2009 10:36 am

    @Ricard: Muy buena idea lo de las votaciones! La verdad es que symfony merecería ganar (al menos en la categoría de “Best Tool or Utility for Developers”) dado la trayectoria del proyecto, así como su entregada y apasionada comunidad…

Escribe un Comentario