Nuevo en Symfony 3.4: Declarada obsoleta la herencia de bundles
Uno de los principales cambios de Symfony 4 es que elimina los bundles para
organizar el código de tu propia aplicación. Aunque los bundles de terceros
seguirán existiendo en el directorio vendor/
, tu código fuente en src/
se
organizará con namespaces PHP en vez de bundles.
En Symfony 3.4 hemos ido un paso más allá para simiplificar los bundles: hemos declarado obsoleta la herencia de bundles y la vamos a eliminar en Symfony 4.0. Esta herencia de bundles es un mecanismo que se usaba para redefinir plantillas, controladores y otros elementos de los bundles de terceros. Aunque esta herencia desaparezca, en Symfony 4.0 tendrás muchas otras alternativas para redefinir esos elementos:
- Controladores: define una ruta con el mismo
path
que el del controlador que quieres redefinir e implementa tu lógica en un nuevo controlador asociado a esa ruta. - Plantillas: utiliza el mecanismo habitual de crear la plantilla en
app/Resources/<NombreDelBundle>/views/<nombreDeLaPlantilla>.html.twig
o el nuevo directoriotemplates/bundles/<NombreDelBundle>/<nombreDeLaPlantilla>.html.twig
que funciona en Symfony 3.4 y será estándar en Symfony 4.0. También puedes definir namespaces de Twig para sobreescribir las plantillas definidas bajo el namespace de cualquier otor bundle. - Rutas: no importes las rutas del bundle o utiliza la misma técnica que con los controladores para redefinir rutas individuales.
- Servicios y Configuración: usa un compiler pass o la decoración de servicios.
- Entidades: no es posible redefinirlas a menos que el bundle proporcione mapped superclasses.
- Formularios: utiliza las extensiones de formularios.
- Validación: no es posible redefinirla a menos que el bundle utilice grupos de validación.
- Traducciones: no tiene relación con la herencia de bundles; solo tienes que redefinir los mensajes usando el dominio de traducción adecuado.
Este cambio fue contribuido por Fabien Potencier en el Pull Request #24160.
Fuente: New in Symfony 3.4: Deprecated bundle inheritance
Comentarios
Proyectos Symfony destacados
La forma más sencilla de generar el backend de tus aplicaciones Symfony. Ver más
Síguenos en @symfony_es para acceder a las últimas noticias.