Quelles nouveautés pour la version 2.4 de Symfony ?

Du nouveau chez Symfony

pere noelIl y a quelques mois, Fabien Potencier, créateur de Symfony, proposait aux développeurs inscrits sur la mailling list Symfony de lui envoyer leur lettre au Père Noël en y indiquant les nouveautés qu’ils voulaient voir intégrées dans la version 2.4 de Symfony. Après avoir reçu des demandes récurrentes autour du Cache et des API Rest, une nouvelle mouture est enfin disponible depuis le 3 décembre. Elle livre son lot de nouveautés, dont certaines très prometteuses. Faisons ensemble un rapide tour d’horizon pour découvrir ce que cette dernière nous apporte.

Expression Language Component

Voilà certainement la plus grosse nouveauté de cette version. Il s’agit d’un moteur d’expression littéral qui gère toutes les expressions supportées par le parser de Twig (opérateur mathématique, chaîne littéral, nombres, tableaux, hashes, etc.). De la même manière que pour Twig, vous pouvez étendre le langage via des functions afin de l’adapter à vos besoins. Pour ce qui est de l’utilisation :

  • Service : vous pouvez utiliser les expressions partout où vous pouvez passer un argument au service container;
  • Access Control : le paramètre allow_if fait son apparition et permet de définir des règles d’accès;
  • SensioFrameworkExtraBundle : apparition de @Security. Si vous utilisez JMS Security bundle, cette annotation correspond à @Secure (bien que la syntaxe @Security semble plus évolutive);
  • Cache : l’annotation @lastModified permettra de factoriser votre règle de rafraîchissement de cache;
  • Routing : le paramètre condition permettra d’établir des règles d’accès à la route sur laquelle il est défini;
  • Validation : @AssertExpression permet maintenant de mettre en place des règles de validation avancées.

Form panel dans le Profiler Symfony2

Une nouveauté vraiment agréable qui permettra de suivre de manière précise vos formulaires dans le profiler Symfony2. Vous y verrez chaque champ de formulaire de votre page avec une multitude d’informations :

  • Données par défaut;
  • Données envoyés;
  • Options fournies;
  • Options résolues.

Request Stack

Voilà une solution que nous attendions tous nous permettant de résoudre un problème connu depuis la version 2.0 de Symfony. Comment manipuler la requête depuis le service container et ce simplement ? SensioLabs nous fournit ici une solution : le Request Stack. La requête n’étant pas elle même un service mais un objet, l’injection du service Request Stack dans votre service cible vous permettra de manipuler facilement la requête principale et ses sous-requêtes (un simple $requestStack->getCurrentRequest() vous permettra d’accéder à la requête courante). Bien évidement, on continuera à manipuler l’Objet Request dans le contrôleur (celui-ci nous retournant la requête courante).

Stopwatch Tag pour Twig

Une nouveauté que je trouve assez intéressante. Grâce à ce nouveau tag, vous pourrez obtenir le temps de chargement relatif à une portion précise de votre page. Ce timing sera visible dans le profiler. Vous pourrez ainsi réaliser une optimisation vraiment très fine de vos contenus.

Bilan

Voilà pour le rapide tour d’horizon des principales nouveautés de Symfony 2.4. Je ne rentre volontairement pas dans les détails puisque les articles dédiés à chaque nouveauté vous permettront d’approfondir les sujets qui vous intéressent le plus. Sachez aussi qu’outre les nouveautés abordées ici, on voit apparaître quelques petites features sympathiques, notamment autour du travail sur les API. Pour plus de détails sur la version 2.4, voici l’annonce de la release avec la liste des articles dédiés à chaque nouveauté : http://symfony.com/blog/symfony-2-4-0-released.

Par rapport aux demandes de la Communauté, on distingue un premier travail sur les API mais finalement aucun apport majeur. La partie Cache semble quant à elle, elle avoir été ignorée. Heureusement, la dernière version de PHP nous fournit une solution intéressante avec une intégration dans le langage d’un fork du Zend Optimizer Plus.

 

Share
Quentin VIGNIER
Quentin VIGNIER

1279

Leave a Reply

Your email address will not be published. Required fields are marked *