Nuevo en Symfony 4.1: declarada obsoleta la notación bundle

En las aplicaciones Symfony modernas ya no se recomienda usar bundles para organizar la lógica de negocio. No obstante, todavía es posible usar la "notación bundle" heredada del uso de bundles en partes como la definición de rutas:

bundle_controller:
    path: /
    defaults:
        _controller: FrameworkBundle:Redirect:redirect

En nuestro afán por simplificarlo todo y eliminar "cosas de Symfony" por "cosas estándar de PHP", en Symfony 4.1 hemos declarado obsoleta esta notación y la hemos reemplazado por la notación namespace de PHP:

bundle_controller:
    path: /
    defaults:
        _controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::redirectAction

Además, al trabajar en estos cambios, nos dimos cuenta de otra inconsistencia que también hemos corregido. Cuando defines los controladores como servicios, tienes que usar dos puntos (:) en vez de cuatro puntos (::) para separar el ID del servicio y el nombre del método a ejecutar:

service_controller:
    path: /
    defaults:
        _controller: app.my_controller:myAction

En otras partes de Symfony siempre se usan cuatro puntos (::) para separar las clases y los métodos, así que esta diferencia solamente complica las cosas y no tiene ninguna ventaja. Así que en Symfony 4.1 podrás usar siempre cuatro puntos para separar los nombres de los métodos:

service_controller:
    path: /
    defaults:
        _controller: app.my_controller::myAction

Esta funcionalidad fue contribuida por Tobias Schultze en el pull request #26085.

Fuente: New in Symfony 4.1: Deprecated the bundle notation

Comentarios

Publicada el

6 de marzo de 2018

Etiquetas

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.