Overviews du Framework Symfony 1.1 Bêta 2

Rechercher

Overviews du Framework Symfony 1.1 Bêta 2

Depuis le début de cette semaine, les développeurs Symfony (comme moi) ont eu la chance de découvrir deux suprises dont l'une est de taille. La première a été dévoilée samedi 22 mars et concerne la branche 1.0 du framework Symfony. La seconde, quant à elle, a été annoncée hier tard dans la nuit et concerne la branche 1.1. Mais de quoi s'agit-il ?

Fabien Potencier et François Zaninotto ont dévoilé samedi la version 1.0.12 du framework PHP. Cette nouvelle mise à jour corrige un défaut de sécurité et quelques autres bugs mineurs. Dans le même temps, on apprend avec joie que la branche 1.1 du framework continue de s'étoffer et c'est pourquoi une version bêta 2 a été annoncée hier soir. Selon le core-team de Symfony, cette mise à jour devrait être la dernière en ce qui concerne les changements majeurs des fonctionnalités et des opérations de refactoring. En effet, de nombreuses modifications au niveau de l'arborescence des fichiers et des objets du noyau ont été opérés par rapport à la branche 1.0 stable.

Il faut dire que cette nouvelle version du framework Symfony s'annonce très prometteuse, et c'est pourquoi la communauté attend avec grande impatience une version stable et officiellement exploitable en production. Les fonctionnalités nouvelles de Symfony 1.1 sont nombreuses par rapport à la branche 1.0. En voici un résumé exhaustif.

Logo officiel du projet Symfony

La première grande nouveauté concerne l'interface de pilotage du framework en ligne de commandes qui a totalement été réécrite depuis zéro. Pake (interface CLI actuelle de Symfony 1.0) est abandonnée au profit d'un nouveau sous-framework CLI plus intuitif, utilisant des namespaces et permettant de créer ses propres tâches CLI. L'ordre des paramètres de chaque commande n'aura également plus d'importance.

La seconde nouvelle amélioration (annoncée depuis plusieurs mois déjà) concerne le sous-framework de gestion des formulaires qui a, lui aussi, été réécrit entièrement. Ce module a la particularité d'être complètement indépendant, et donc d'être réutilisé comme composant pour des applications n'utilisant pas Symfony au même titre que les composants PEAR ou du Zend Framework. Bien sûr, ce sous-framework de manipulation de formulaires est sous licence MIT. De quoi ravire les entreprises qui ne désirent pas franchir le pas vers Symfony mais qui souhaiteraient développer leur propre framework. Cette brique logicielle le sera d'un grand secours :) Au sein de Symfony, ce framework de manipulation de formulaires assure les pénibles tâches de création, validation et sécurisation des données sans difficulté pour le développeur.

Le sous-framework de gestion des plug-ins a, lui aussi, été réécrit « from scratch » afin de permettre le support des dépendances entre les plug-ins comme le sont aujourd'hui les composant du framework PEAR.

Concernant le moteur d'ORM natif, il s'agit toujours de Propel et non Doctrine, contrairement à certaines rumeurs que l'on entendait à droite et à gauche. Symfony 1.1 intègre désormais la toute dernière version de l'ORM Propel. Le support de l'internationnalisation des informations en base de données a également été amélioré ainsi que les opérations de dump / load des data sous contraintes de clés étrangères. Un meilleur support des behaviors Propel ainsi que la surchage de schemas de bases de données font partie de la mise à jour de la branche Symfony 1.1.

Le moteur de routing a lui aussi subi une petite refonte. Il dispose à présent de son propre système de cache, ce qui assure de meilleures performances lors de la génération de pages contenant beaucoup d'URL. L'objet de routing n'est quant à lui plus un singleton, ce qui signifie que les applications peuvent maintenant accéder aux objets de routing des autres. En ce qui concerne les possibilités de configuration des URL, il est maintenant possible de définir d'autres séparateurs (comme la virgule) autres que le traditionnel slash.

Autre point fort actuel du framework Symfony : le support en natif de l'internationnalisation des applications via des fichiers XML XLIFF. L'équipe de développement a ajouté un système de cache des traductions pour améliorer davantage la génération des templates de la vue. Une nouvelle tâche CLI voit aussi le jour et permet d'extraire des templates les textes soumis à traduction pour générer dynamiquement les dictionnaires XLIFF. De quoi réduire encore les temps de développement ! Au même titre que les objets de routing, l'objet d'internationnalisation n'est plus un singleton. Le support de gettext à lui aussi été ajouté dans cette nouvelle version du framework.

De nombreux apports ont été opérés au niveau du cache global des applications dans le but de rendre les pages plus rapidement. On note surtout le support de nouvelles factories de cache assurant le support des accélérateurs MemCache et APC. Autant dire que Symfony sera très certainement « PHP 6 ready ».

En ce qui concerne la configuration globale des applications, le format YAML (prononcez Yamel) reste en place malgré quelques critiques qui ont été faites à ce sujet. Un effort important a été mis en oeuvre pour cette nouvelle version puisque Symfony 1.1 dispose désormais de son propre parseur YAML. Spyc a donc été visiblement abandonné. Ce nouveau parser renverra au développeur des messages d'erreur bien plus explicites que ceux actuels. Les applications Symfony seront aussi capables de contrôler elles même la version sur laquelle elles fonctionnent. Cela devrait faciliter leur mises à jour.

La dernière partie des mises à jour majeures concerne le framework d'automatisation des tests unitaires et fonctionnels. Un outil de comparaison des performances entre les différentes versions de Symfony est intégré ainsi que le support complet des sélecteurs CSS 3.

Parmi les mises à jour mineures, on retient une amélioration du support des relations « many-to-many » dans l'admin generator, des outils de débug (debug toolbar), des objets Response qui accueillent de nouvelles méthodes, des messages d'erreur de Phing...

Que dire sur la migration des applications Symfony 1.0 vers Symfony 1.1 ? C'est la grande inquiétude des développeurs de la communauté. Rassurons-nous, cette migration devrait se faire tout en douceur selon François Zaninotto puisque 98% de la branche 1.0 est compatible pour un passage en 1.1.

Quelques mots concernant la qualité de Symfony. Il est bon de rappeller que la communauté apporte un soutien phénoménal au développement du framework puisqu'elle soulève et reporte de nombreux bugs dans le trac. Tous les bugs sont fixés selon leur niveau d'urgence mais surtout testés !!! A ce jour, Symfony a subi plus de 8 000 tests unitaires pour valider la qualité et l'intégrité du code.

Pour ceux qui auraient envie de tester la branche 1.1 en bêta 2, une installation via SVN, PEAR ou la sandbox est possible. Notons également un nouveau Symfony Sprint aura lieu dans les jours prochains pour permettre à la communauté d'apporter son aide dans la traduction de la documentation, le développement de nouveaux plugins, la découverte de nouveaux bugs....

Je vous laisse le soin de consulter ces liens pour vous donner davantage l'eau à la bouche :)

Les commentaires

1. Par cedric le 27/03/2008 16:46

Tres bon article. Tres complet.

Identifiez-vous
Join |  ID/MDP? |