A la hora de desarrollar un proyecto es muy común preguntarse qué tecnología utilizar así como el hecho de utilizar un CMS (Content Management System) o un plataforma de e-commerce. Ambos se han hecho muy populares en los últimos años debido a que contienen una serie de funcionalidades estándar que luego se pueden adaptar a cada sitio web que se vaya a desarrollar. Como definición, un CMS es un gestor de contenidos, una aplicación ya desarrollada, que está lista para utilizarse y que permite cierto nivel de personalización y modificación.

Por ejemplo, encontramos como principales CMS para desarrollar una web a Worpdress, Joomla o Drupal y como principales sistemas para crear un e-commerce a Prestashop, Magento o WooCommerce. Cuando el proyecto es de un tamaño pequeño-mediano son plataformas ideales, ya que permiten desarrollar el sitio web de una forma muy rápida, ya que viene ya montado prácticamente todo lo necesario para empezar. Un panel de administración, un editor de texto enriquecido, un gestor de imágenes y hasta un gestor de productos, pedidos e incluso CRM dentro de las plataformas e-commerce. En ocasiones, incluso para proyectos más grandes un CMS puede hacer un gran papel.

No obstante, cuando lo que se quiere desarrollar es algo más potente, que sea muy escalable y a medida pero sin tener que reinventar la rueda, la opción adecuada suele ser la utilización de un framework.

¿Qué es un framework?

Un framework es un conjunto de herramientas y librerías ya desarrolladas y estudiadas que permiten realizar las tareas más comunes dentro del proyecto. Es decir, un framework incluye todas aquellas funcionalidades que suelen tener la mayoría de proyectos ya desarrolladas para que no se tengan que desarrollar de nuevo para cada proyecto. Con esto, el desarrollador gana mucho tiempo, pues mucha parte del desarrollo viene ya preparado. Sin embargo, no hay que confundirlo con los CMS, ya que el framework contiene las funcionalidades, aunque es el desarrollador el que tiene que darle la forma deseada y aplicar y utilizar lo que necesite, de forma totalmente a medida.

Los frameworks, en muchos casos llegan a ser incluso una forma de trabajar y de estructurar el código, esto es, una jerarquía y organización para el proyecto ya predefinida. Algunos de los frameworks para PHP más conocidos son Symfony, Zend Framework, Laravel, CakePHP o CodeIgniter.

¿Por qué Symfony?

Symfony es uno de los frameworks más populares y tiene mucho recorrido, lo cual permite que haya una comunidad importante de desarrolladores. Esto facilita el hecho de que cuando hay que realizar un desarrollo con symfony haya mucha documentación y mucha gente a la que poder preguntarle y compartir.

Este framework funciona sobre PHP y permite con su gran potencia algunas de las siguientes cuestiones:

  • Tener un proyecto bien estructurado y donde pueden trabajar / aportar muchos desarrolladores a la vez. Es decir, el hecho de trabajar con Symfony hace que una vez que una persona ha aprendido symfony luego pueda trabajar en un proyecto nuevo de forma sencilla, ya que conoce perfectamente la estructura y dónde encontrar cada funcionalidad. Incluso y por el mismo motivo, permite que un desarrollador pueda ayudar en un proyecto que ya está en desarrollo.
  • Tener un orden en el proyecto. Es fundamental, ya que cada desarrollador podría trabajar de una forma, y al utilizar un framework todos siguen un mismo orden.
  • Escalabilidad. Trabajar de una forma tan estructurada pero a la vez pudiendo desarrollar a medida, permite una gran escalabilidad. Es una de las principales diferencias a la hora de crear un proyecto con un CMS o con un framework, con este último generalmente se puede crecer todo lo necesario sin necesidad de estar cambiando constantemente todo el motor de la web.
  • No reinventar la rueda. En symfony como en el resto de frameworks es lo que se pretende. No tener que desarrollar cada vez un login de usuarios o un buscador, sino utilizar los que ya vienen, que además son mejorados constantemente por la comunidad, lo que permite tener siempre unas funcionalidades potentes y actualizadas con un esfuerzo menor. Si cada vez se tuviera que desarrollar cada funcionalidad supondría mucho tiempo y dinero, y seguramente el resultado no sería tan bueno.
  • MVC (Modelo-Vista-Controlador). Una forma de trabajar que facilita la vida a los desarrolladores y permite diferenciar entre la parte más de programación y aquella que es más de maquetación, de forma que un equipo de desarrolladores puedan trabajar mejor según su perfil y sin interferir en el trabajo de los demás.
  • Es software libre. El código de symfony es libre y está abierto a todo el mundo. Cualquiera pueda utilizarlo para su proyecto, del mismo modo que puede utilizar PHP. Esto es un gran punto a favor, ya que es algo abierto, en continuo desarrollo y avance y hace que una persona con conocimientos pueda utilizarlo a su servicio e incluso ayudar a los demás desarrolladores a mejorar.

¿Cuándo escoger Symfony?

Se ha hablado de CMS y de frameworks, pero es importante saber cuando elegir cada uno. Elegiremos el framework Symfony generalmente en los siguientes casos:

  • Cuando se necesita flexibilidad. Si en un proyecto se necesita hacer las cosas de una determinada manera y no de otra. Al contrario que los CMS donde las modificaciones están más limitadas en Symfony la programación se puede adaptar de forma total a las necesidades o requisitos del proyecto.
  • Cuando los CMS se quedan cortos. En muchos casos la utilización de un CMS puede limitar las posibilidades del proyecto, por la forma en la que están desarrollados. En symfony se puede complicar el proyecto todo lo deseado, pues permite crecer mucho más.
  • Seguridad. Utilizar symfony frente a un CMS es también un punto a favor de la seguridad, pues la mayoría de los CMS siguen los mismos patrones, mismas URLs para hacer un login y mismos bugs. Esto facilita que cuando hay un error, ese error forme parte de todos los CMS del mercado y haya que estar rápidamente con actualizaciones. En symfony, en cambio, al estar todo desarrollado a medida sobre una base, es más complicado que se puedan difundir este tipo de errores, que serían más concretos para cada proyecto y no tan genéricos.
  • Mejor gestión de recursos. Aunque los frameworks suelen necesitar bastantes recursos, es posible “jugar” con ello, al contrario de lo que ocurre con los CMS, donde la propia estructura de los mismos hace en ocasiones que no se puedan optimizar de todo.
  • Utilización de plantillas y layouts. Pese a que symfony tiene una curva de aprendizaje mayor a la de los CMS, tiene un sistema de plantillas y layouts que permiten que diseñadores o maquetadores HTML puedan aportar al proyecto sin tener demasiada idea del mismo.

 

Agencia desarrollo Symfony

Por todos estos motivos es importante plantearse antes de desarrollar un proyecto qué es lo que más conviene y en el caso de optar por un framework como symfony, rodearse de un equipo de profesionales para poder llevar el proyecto a cabo. Es indispensable trabajar con un desarrollador o agencia de desarrollo Symfony para conseguir desarrollar un sitio web más ambicioso o una aplicación web.

En resumen, se utilizará un CMS cuando sea un sitio web más o menos sencillo o se pueda cubrir de forma rápida por las funcionalidades con las que estos cuentan. Como por ejemplo una web o una tienda online al uso. Y se utilizará el framework symfony cuando desarrollo sea más complejo o se necesite un sitio web más potente y escalable.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on Tumblr
He leído y estoy conforme con la Política de Privacidad.