
— 5 min de lectura
Muchos proyectos necesitan funcionalidades de gestión de contenidos
Seguro que te has visto en esta misma tesitura, tienes que hacer un super proyecto a medida, con un montón de funcionalidades internas, detrás de un login, pero a su vez, hay una serie de páginas externas, fuera de lo que es la aplicación principal, que es necesario hacer y, más importante, que es probable que haya un equipo de marketing que quiera gestionar de forma independiente.
Imaginad, por ejemplo, una web conocida como Linkedin, una vez entras dentro, ves todas las funcionalidades de red social laboral, pero antes de registrarte y hacer login, hay unas páginas en las que se cuenta todo lo que es Linkedin, a esas páginas me refiero.
Sé por experiencia que, en muchos casos, el equipo de desarrollo no tiene en cuenta las necesidades de Marketing para esas páginas y, al final, se acaba montando un Wordpress o algo similar para esa parte, desacoplado de la aplicación (y tienes la aplicación en un subdominio, por ejemplo, de la web principal). Y oye, no voy a ser yo el que diga que eso está mal, en algunas ocasiones puede que sea lo más sencillo y ambos equipos puedan centrarse en lo que dominan, pero no es lo más práctico. Tienes que acabar gestionando dos sistemas diferentes, dos instalaciones, servidores, muchas veces en dos tecnologías diferentes, solo porque no se ha integrado un CMS en la aplicación, para gestionar esa parte.
Con la mayoría de CMS, eres tú el que tiene que adaptarse
Cuando trabajas con la mayoría de CMS tradicionales, el contenido no se adapta a tu lógica de negocio: eres tú quien tiene que adaptarse a la suya. Están pensados como plataformas cerradas donde tú “encajas” tu proyecto, no como herramientas que se integran con él. Si tu aplicación Symfony necesita una funcionalidad específica o una arquitectura limpia, pronto te encuentras peleando contra el CMS en lugar de construir lo que realmente necesitas.
Un ejemplo claro es Drupal.
Con Drupal, estás entrando en un ecosistema completo que impone su propia forma de hacer las cosas: su sistema de rutas, su forma de definir entidades, sus formularios, su capa de renderizado, su sistema de permisos... Aunque esté construido sobre componentes de Symfony, no estás trabajando “con Symfony”, sino “dentro de Drupal”.
Si ya tienes una app Symfony y quieres integrar Drupal para gestionar contenido, te tocará montar dos mundos paralelos y buscar formas de hacerlos hablar entre ellos (por ejemplo, vía API con Drupal decoupled o Headless). Lo mismo ocurre si empiezas con Drupal y luego necesitas lógica de negocio más compleja: acabas metiendo código custom en un sistema que no está pensado para eso.
Otro mundo es posible
Me encantan estos títulos de película 😅... pero sí, existen otros mundos, básicamente integrar funcionalidades de CMS dentro de nuestro propio proyecto Symfony.
¿Qué significa tener un CMS dentro de Symfony?
Se instala vía Composer.
Funciona como bundle o paquete dentro del proyecto.
No rompe tus rutas, tus plantillas ni tu arquitectura.
Tú decides cómo se usa, cómo se extiende, y cómo se integra.
Este último punto es bastante importante, aunque en nuestro CMS Armonic (claro, claro, luego te venderemos nuestro libro, pero tranquila que es gratis), nosotros te damos una lógica y una estructura de cómo usarlo y extenderlo, en realidad hay mucha flexibilidad.
Al final del todo, una vez hemos integrado el CMS en nuestro proyecto, tendremos un panel de Administración en el que por un lado estarán las funcionalidades de nuestra aplicación y, por otro, si tenemos el rol adecuado, veremos las funcionalidades para controlar el CMS.
Tienes un ejemplo de cómo sería en nuestra instalación standalone, para probar Armonic.

Opciones para CMS integrados
Vale, ya hemos visto un poco por qué puede ser interesante tener las funcionalidades de CMS integradas dentro de nuestro proyecto y hemos visto que podríamos hacer esto con Armonic, el nuestro, pero para ser completamente honestos, no es la única opción (y no siempre va a ser la mejor, tampoco), así que veamos otras alternativas. En la página de Symfony tienes un montón de CMS basados en Symfony, pero no con todos es fácil montar nuestro proyecto y tener las funcionalidades del CMS dentro del mismo.
En otros artículos iremos haciendo comparativas entre Armonic y estos distintos CMS's, para ayudar a elegir entre unos y otros. De momento, tienes toda la info de Armonic en nuestra web. y tienes también la documentación técnica en esta otra página.