Prepara tus aplicaciones para Symfony 3 con el "Deprecation Detector"

Symfony 3 se publicará a finales de noviembre de 2015. Aprendiendo de nuestros propios errores, la transición de Symfony 2 a 3 será mucho más cómoda que la que tuvo lugar de symfony 1 a 2 en julio de 2011.

Técnicamente hablando, Symfony 3 no incluye ninguna nueva funcionalidad respecto a Symfony 2.8. El único cambio es que cualquier opción, funcionalidad o comportamiento de Symfony marcado como obsoleto (deprecated en inglés) dejará de funcionar.

Así que tus aplicaciones Symfony no funcionarán en Symfony 3 a menos que dejes de usar todas esas funcionalidades obsoletas. Para que te sea más sencillo detectar y corregir esos problemas, se acaba de publicar una herramienta llamada Deprecation Detector.

Esta aplicación de consola realiza una análisis estático de tu código fuente para encontrar cualquier uso de métodos, clases, interfaces o servicios obsoletos. En concreto, detecta el código obsoleto gracias a la anotación @deprecated que usa el código fuente de Symfony.

Aunque acaba de lanzarse y todavía le queda mucho para considerarse estable, ya puedes probarla en tus aplicaciones Symfony:

$ git clone [email protected]:sensiolabs-de/deprecation-detector.git
$ cd deprecation-detector
$ composer install
$ ./bin/deprecation-detector check /ruta/a/tu-proyecto/src /ruta/a/tu-proyecto/vendor

Como seguramente vas a usar esta herramienta con mucha frecuencia, es mejor que crees un archivo PHAR y la instales globalmente en tu sistema, tal y como se explica en su documentación. En ese caso, usar la herramienta es mucho más sencillo:

$ cd /ruta/al/proyecto/symfony
$ deprecation-detector check

La herramienta Deprecation Detector es un proyecto desarrollado por el equipo de SensioLabs Deutschland, mantenido por Marvin Klemp y publicado como software libre. Puedes colaborar con el proyecto mediante issues y pull requests.

Si pruebas la herramienta, no olvides comentarnos cuántas funcionalidades obsoletas ha encontrado en tus aplicaciones.

Comentarios

  1. Después de ejecutar esta herramienta en el código fuente de symfony.es, sólo ha descubierto 2 deprecations :)

    Javier Eguiluz el 21 de octubre de 2015, 9:39:36

  2. Genial Javier. ¿En qué versión de Symfony está symfony.es?

    Jesús Damián García Pérez el 21 de octubre de 2015, 14:56:07

  3. Ahora mismo está en 2.7.4, que es justo la anterior a la más reciente de la rama estable.

    Javier Eguiluz el 21 de octubre de 2015, 16:23:14

  4. Yo lo he probado en un proyecto con versión 2.7.5 y solo me ha encontrado uno. También he de decir que es un proyecto pequeño que me he hecho para hacer pruebas de API REST, mañana lo probaré en el trabajo a ver que tal :)

    Sergio de Candelario el 21 de octubre de 2015, 21:01:09

  5. A mi me ha salido en dos proyectos que 0 deprecations... No se si fiarme... jajaja

    Hector Borras Aleixandre el 4 de noviembre de 2015, 11:21:03

  6. a mi me sale Overriding deprecated method CommonBundle\Twig\Extensions\SeoExtension->getGlobals() | 15 | since 1.23 (to be removed in 2.0), implement Twig_Extension_GlobalsInterface instead

    sin embargo, ya lo tengo con implements :-(

    hector prats el 20 de noviembre de 2015, 22:32:14

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

21 de octubre de 2015

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.