Dic
20

La liberación de SymfonyZero y SymfonyZero-API ya está aquí

Nuestro compañero de Emergya, José Antonio Dorado, ha escrito un artículo sobre la liberación de SymfonyZero y SymfonyZero-API, que además ha sido publicado en el blog  OpenWebinars

Aquí os dejamos el artículo

¿Cuántas veces al iniciar un proyecto te has planteado las mismas dudas y repetido las mismas tareas? Si la respuesta es “más de una vez”, es que ha llegado la hora de automatizar y agilizar estas primeras fases. El pasado 29 de noviembre el equipo de Symfony logramos alcanzar uno de los grandes objetivos que nos habíamos marcado para este 2016, ¡liberamos SymfonyZero y SymfonyZero-API!

El motivo de realizar esto se debía a que observamos que en la mayoría de proyectos en los que íbamos trabajando, había una serie de tareas, sobre todo, en las primeras fases del desarrollo, que se repetían a menudo, ocasionando una pérdida de tiempo y siendo una posible fuente de errores. Una vez analizado esto, surgió la idea de desarrollar dos herramientas que nos ayudarán a agilizar las primeras etapas del desarrollo de proyectos Symfony.

Pero, ¿Qué son SymfonyZero y SymfonyZero-API?

Para entender mejor qué son SymfonyZero y SymfonyZero-API podemos decir que son dos kickstarters distintos, orientados cada uno a una arquitectura diferente, que incluyen un conjunto de bundles ya configurado, que podemos incluir o eliminar fácilmente en caso de no necesitar alguno de ellos, junto con demos de cada una de las funcionalidades, de manera que sirva tanto para continuar el desarrollo como para aprender el funcionamiento de los diferentes componentes, además de funcionalidades y secciones comunes de la mayoría de los proyectos. También incluye documentación sobre cómo trabajar con ellos, configurarlos, adaptarlos a nuestras necesidades, un instalador automático que permite instalarlos en un servidor totalmente limpio y tenerlo en 5 minutos funcionando y con todas las dependencias instaladas. Estas dos herramientas están desarrolladas siguiendo las buenas prácticas y coding standards, de manera que continuar el desarrollo siguiendo la guía propuesta, además de agilizar el desarrollo, promueve la construcción del software manteniendo una buena calidad del código.

SymfonyZero está preparado para ser usado en proyectos en los que Symfony es el core de la aplicación, donde se utiliza Twig como motor de plantillas y hay una serie de funcionalidades que se repiten bastante como son la gestión de usuarios, paneles de administración, integración con redes sociales, formularios de contacto, paginación… Por otra parte, SymfonyZero-API está orientado a otro tipo de arquitecturas donde Symfony se utiliza como una API Rest, que se puede integrar con diferentes aplicaciones desarrolladas en otras tecnologías mediante una interfaz de comunicación en JSON. Además, tiene la ventaja de poder abstraerse por completo de la tecnología que se utilice en el frontend, con lo que se podrían realizar diferentes aplicaciones web, móviles… y cambiarlas en un futuro sin necesidad de tocar el código del backend.

Features

SymfonyZero incluye bundles para abordar las siguientes necesidades:

  • Gestión de usuarios
  • Panel de administración
  • Paginación
  • Breadcrumbs
  • Herramientas de debug
  • Ley de cookies
  • SEO
  • Menú
  • Memcache
  • Internacionalización
  • Mailchimp
  • Login/Registro mediante Redes Sociales
  • Gestión de assets
  • Subida de ficheros

Además de las siguientes secciones y funcionalidades comunes desarrolladas (y fácilmente eliminables en caso de que no se deseen utilizar):

  • Landing Page
  • Página “about us”
  • Página de términos y condiciones
  • Formulario de contacto
  • Carrusel con slider de imágenes y textos administrable
  • Registro de usuarios / Login
  • Sección privada para administradores
  • Header / Footer
  • Carga de datos de prueba
  • Integración con Facebook, Twitter y G+
  • Bootstrap integrado

Por su parte, SymfonyZero-API incluye bundles para:

  • Gestión de usuarios
  • Serialización
  • Paginación
  • Gestión de cabeceras CORS
  • Documentación de la API
  • API Rest
  • Autenticación OAuth
  • Impersonate
  • HATEOAS

Y están desarrolladas las siguientes funcionalidades:

  • Página de documentación de la API
  • Interfaz swagger
  • CRUD para una entidad de prueba
  • Carga de datos de prueba
  • Registro de usuarios
  • Login mediante OAuth
  • Comunicación con frontend y otras aplicaciones mediante JSON
  • Nivel 3 de madurez de API Rest

Además, para facilitar el desarrollo de nuevas funcionalidades o continuar el trabajo partiendo de esta base se incluyen demos de varias de estas features. Así, una persona que no tenga mucha experiencia trabajando con este framework puede comprender su funcionamiento de una manera más sencilla.

Actualmente los repositorios están liberados, con lo que podemos seguir mejorándolo en función del feedback que obtengamos. Aun así, ya se puede decir que son unos desarrollos estables y maduros. 

Ambos proyectos son open source y disponen de licencia MIT, de manera que se puede utilizar de manera gratuita incluso para proyectos profesionales que posteriormente se vayan a comercializar. Si bien tanto SymfonyZero como SymfonyZero-API son maduros y ya han sido utilizados en diferentes proyectos, no dejan de ser productos susceptibles de mejora, por lo que si deseas contribuir con futuras mejoras para incluir en el roadmap de cualquiera de las dos distribuciones, o si realizas cambios o algún nuevo desarrollo que creas que pueda ser útil para la comunidad, no dudes en realizar un pull request. Así estarás contribuyendo a un proyecto open source y toda la comunidad podrá beneficiarse de ello.

Animamos a todo el que quiera probarlo, curiosear y proponer mejoras:

SymfonyZero: https://github.com/Emergya/SymfonyZero

SymfonyZero-API: https://github.com/Emergya/SymfonyZero-API