Symfony Framework

Logotipo de Symfony en su versión 1

Ahora que ya entendemos que es un Framework MVC podemos hablar sobre uno de los principales temas de los que vamos a ir hablando durante la vida de este blog.

Nuevamente veamos que dice wikipedia:

Symfony es un completo framework diseñado para optimizar el desarrollo de las aplicaciones web mediante algunas de sus principales características. Para empezar, separa la lógica de negocio, la lógica de servidor y la presentación de la aplicación web. Proporciona varias herramientas y clases encaminadas a reducir el tiempo de desarrollo de una aplicación web compleja. Además, automatiza las tareas más comunes, permitiendo al desarrollador dedicarse por completo a los aspectos específicos de cada aplicación. El resultado de todas estas ventajas es que no se debe reinventar la rueda cada vez que se crea una nueva aplicación web.

Symfony está desarrollado completamente en PHP 5. Ha sido probado en numerosos proyectos reales y se utiliza en sitios web de comercio electrónico de primer nivel. Symfony es compatible con la mayoría de gestores de bases de datos, como MySQL, PostgreSQL, Oracle y Microsoft SQL Server. Se puede ejecutar tanto en plataformas *nix (Unix, Linux, etc.) como en plataformas Windows.

Gracias a Fabien Potencier, creador de symfony, podemos tener todo esto de los que habla arriba. Symfony es un framework de frameworks. Obtiene ideas y funcionalidades de varias otras librerías y los añade como funcionalidad.

Otros Frameworks usados dentro de Symfony

Del framework python Django podemos utilizar la idea del subframework de formularios. Señores, en Symfony los formularios no son diseñados con HTML!! son programados como objetos que hasta contienen la propia validación de sus campos, permitiendo que el mismo sea un conjunto atómico llamado al momento de ser utilizados y por sobre todo cumpliendo la regla «las validaciones de formularios son obligatorias hacerlas en el lado del servidor y muy recomendablemente del lado del cliente tomando en cuenta la seguridad de la aplicación».

Entre ellos podemos nombrar a Doctrine, un ORM (Object-Relational mapping) inspirado en Hibernate de Java que mapea cada tabla de la base de datos con un objeto PHP. De esta manera podemos olvidarnos en un 80% de con que base de datos estamos trabajando. Cuando queremos datos hablamos directamente con Doctrine y él sabe como hablar con un mysql o un postgres, etc.

JQuery es nuestro siguiente ayudante. Si queremos trabajar con JavaScript y especialmente AJAX, nos permite hacerlo sin escribir casi nada haciéndola una de las mejores herramientas creadas hoy en día para esto, que conjuntamente con script.aculo.us podemos realizar efectos y dinamismo en nuestras páginas.

De Rails obtenemos la filosofía de utilización de helpers, Scaffolding y el potente y limpio meta lenguaje YAML competidor de XML.

Cuantos de ustedes llegaron a hartarse de hacer ABMs para toooodas las tablas? Yo sinceramente estaba harto. Bueno, symfony nos ofrece, entre «1» de sus ayudas la creación automática de ABMs como también la generación del administrador de contenidos del sitio para urgencias. También trabaja con Internacionalización (I18N) y localización (L10N) de sitios, incluye soporte para pruebas unitarias, auto generación de datos de ejemplo para pruebas insertadas en la base de datos y muchas otras herramientas de las que iremos hablando poco a poco.

Como siempre digo, espero no haber aclarado completamente que es Symfony sino haberlos hecho querer investigar más sobre este framework MVC para PHP.

2 Comments

    1. Hola Gonzalo. Gracias por el comentario.

      La ventaja de Symfony con relación a los demás frameworks PHP es que tiene muchísima documentación en castellano. En http://www.librosweb.es podes encontrar la guía oficial traducida al castellano y también otros materiales muy interesantes.

      De todas maneras una opinión muy personal es que para entender un framework PHP ayuda mucho la práctica de PHP en forma normal ya que si no se entienden algunos conceptos puede asustar al principio pero entendiéndolos la curva de aprendizaje se vuelve mucho más baja.

      A parte, también es interesante porque después de hacer unas cuantas cosas con PHP básico se siente muy bien ver la cosas que Symfony puede hacer por nosotros 😛

Deja un comentario