Developpez.com

Le Club des Développeurs et IT Pro

Symfony 3.0 est disponible en version stable

Avec des correctifs de bogues et de nombreuses améliorations dans le framework PHP

Le 2015-12-04 03:12:35, par Olivier Famien, Chroniqueur Actualités
Parallèlement à la sortie de la version 2.8, l'équipe de Symfony a également annoncé la disponibilité de la version 3.0 de son framework PHP.

Dans cette nouvelle version majeure, les fonctions et classes marquées comme obsolètes au long des versions 2.x ont été supprimées dans cette version 3.0. Dans les versions 2.x, par exemple, nous avons la classe UniversalClassLoader qui permet de charger les fichiers Symfony. Dans la version 3.0, ce nom a été supprimé au profit de ClassLoader. Cela a également entraîné des changements au niveau du nom de certaines méthodes.

Ancien nom Nouveau nom
registerNamespaces() addPrefixes()
registerPrefixes() addPrefixes()
registerNamespaces() addPrefix()
registerPrefixes() addPrefix()
getNamespaces() getPrefixes()
getNamespaceFallbacks() getFallbackDirs()
getPrefixFallbacks() getFallbackDirs()

Par ailleurs, le nom de la classe DebugUniversalClassLoader a été supprimé au profit du nom DebugClassLoader.

Au niveau de la console, plusieurs méthodes telles que isQuiet(), isVerbose(), isVeryVerbose(), isDebug() ont été ajoutées. Par contre, la classe ProgressHelper a été supprimée en faveur de ProgressBar. Cela donne le code suivant :

Code :
1
2
3
4
5
6
$bar = new ProgressBar($output, 10);
$bar->start();
for ($i = 1; $i < 5; $i++) {
   usleep(200000);
   $bar->advance();
}
Au lieu de celui-ci :

Code :
1
2
3
4
5
6
7
$h = new ProgressHelper();
$h->start($output, 10);
for ($i = 1; $i < 5; $i++) {
   usleep(200000);
   $h->advance();
}
$h->finish();
TableHelper a également été supprimé pour le nouveau nom Table.

Au niveau des formulaires, l’option precision a changé de nom. Le nouveau nom est scale. L’option virtual a également été renommée par inherit_data. Les méthodes AbstractType::setDefaultOptions(OptionsResolverInterface $resolver) et TypeExtension::setDefaultOptions(OptionsResolverInterface $resolver) ont été également renommées. Il est maintenant recommandé d’utiliser les noms stractType::configureOptions(OptionsResolver $resolver) et AbstractTypeExtension::configureOptions(OptionsResolver $resolver).

Les méthodes Form::bind() et Form::isBound() ont été supprimées. Pour obtenir les mêmes résultats, il est recommandé d’utiliser les méthodes Form::submit() et Form::isSubmitted().

Certains paramètres des routes ont été également renommés. Le nom du paramètre pattern a été transformé en path et les paramètres _scheme et _method de requirements ont été changés en schemes et methods.

Au niveau de la sécurité, la méthode vote() de la classe VoterInterface a été changée afin d’accepter des types arbitraires et non pas uniquement des objets. Le répertoire Resources/ a été déplacé à l’emplacement Core/Resources/. En outre, les paramètres de sécurité key de anonymous, remember_me et http_digest ont été renommés en secret.

En ce qui concerne Yaml, la possibilité de passer des fichiers à Yaml::parse() a été révoquée. Par ailleurs, le composant Locale a été supprimé pour laisser place au composant Intl. Ainsi, au lieu d'utiliser les méthodes disponibles dans Symfony\Component\Locale\Locale, il faut plutôt utiliser les méthodes de Symfony\Component\Intl\Intl. Ci-dessous, la liste des changements.

Ancien nom Nouveau nom
Locale::getDisplayCountries() Intl::getRegionBundle()->getCountryNames()
Locale::getCountries() array_keys(Intl::getRegionBundle()->getCountryNames())
Locale::getDisplayLanguages() Intl::getLanguageBundle()->getLanguageNames()
Locale::getLanguages() array_keys(Intl::getLanguageBundle()->getLanguageNames())
Locale::getDisplayLocales() Intl::getLocaleBundle()->getLocaleNames()
Locale::getLocales() array_keys(Intl::getLocaleBundle()->getLocaleNames())

Au niveau des correctifs, nous avons entre autres les bogues suivants qui ont été corrigés :

  • une erreur sur l'affectation de type ;
  • une erreur était déclenchée à partir d'un certain nombre de routes ;
  • au niveau du débogage, les déclarations de classe pouvaient être chargées à plusieurs reprises ;
  • une alerte se déclenchait au niveau des variables non utilisées ;
  • une erreur a été détectée au niveau du thème horizontal Bootstrap.


Plusieurs autres changements et correctifs ont été apportés dans la version 3.0. En outre, contrairement à la version 2.8, cette nouvelle version majeure ne bénéficie pas de support LTS.

Source : Blog Symfony 3.0

Et vous ?

Que pensez-vous de Symfony 3.0

Voir aussi

Forum Symfony 2
  Discussion forum
12 commentaires
  • Guikingone
    Membre éprouvé
    J'ai télécharger S3 hier, installé et lancé sans soucis, toujours aussi agréable de voir que ce Framework continue sur ses très bonnes bases.

    Par contre, à noter aussi que contrairement à la version 2.7, la console se trouve dans /bin et non dans /app.
  • Tsilefy
    Membre émérite
    Mon avis (mais d'autres peuvent ne pas les partager):

    - le meilleur est PHPStorm. C'est un IDE professionnel, très puissant et qui fait gagner considérablement de temps de développement, mais comme tout logiciel il faut apprendre à l'utiliser. Fonctionnalités complètes (gestion de projets, auto-complétion, génération de code et refactoring, formatage de code, intégration avec serveur (local, distant, virtuel), avec des systèmes de gestion de version (git...), débogage, code coverage, client REST, éditeur HTML, Javascript et CSS/Less/Sass, j'en passe et des meilleurs). La version ordinaire est payante (et pour un professionel, c'est un investissement qui s'amortit très rapidement). Il existe une version gratuite qui s'appelle EAP. La version EAP est tout simplement la version "Beta" de PHPStorm, qui a une licence gratuite valable 1 mois. Heureusement, une nouvelle version est disponible au moins une fois par mois (et parfois plusieurs fois par mois), et la licence de 1 mois se réinitialise à chaque mise à jour, ce qui veut dire qu'en pratique la licence EAP reste gratuite indéfiniment. Bien que "Beta", j'ai personnellement utilisé la version EAP pendant plusieurs mois pour tester PHPStorm avant d'acheter la licence payante, et je n'ai jamais eu le moindre problème avec.

    - Le numéro 2 est NetBeans. C'est gratuit. Propose toutes les fonctionnalités de base qu'on attend d'un IDE, mais beaucoup plus lent (et moins agréable) que PHPStorm.

    - Je n'ai pas testé, mais d'autres aiment Eclipse, KomodoIDE etc...

    Il faut cependant savoir qu'un IDE est un monstre et demande une machine puissante et un temps d'apprentissage. C'est recommandé si tu travailles sur des projets (çad ton code est organisé dans plusieurs fichiers répartis dans plusieurs répertoires). Si tu bosses sur un petit nombre de fichiers PHP en même temps, un simple éditeur de texte avec auto-complétion fera l'affaire.

    Donc une recommandation pour un éditeur de texte. Oublie Notepad, et télécharge Sublime Text. C'est payant, mais avec une licence d'évaluation gratuite à vie (le logiciel te demandera juste de temps en temps si tu veux acheter une licence payante, il suffit de dire non). C'est très rapide, léger, extrêmement agréable à utiliser, avec des fonctions d'éditions de texte incroyables; Il a l'auto-complétion de base, et on peut y ajouter un module d'auto-complétion (par exemple celui-là). Un éditeur de texte n'est pas un IDE bien sûr, mais parfois c'est suffisant.
  • dukoid
    Membre expert
    surferIX est un TROLL teigneux et têtu, il nous laissera pas vivre sur ce forum en paix
  • Tsilefy
    Membre émérite
    Envoyé par SurferIX
    Ah tiens. Ils se sont aperçus que tout le monde en a marre de taper des noms à rallonge pour rien ?
    Tu ne dois pas connaître ce petit outil qui s'appelle un IDE avec l'autocomplétion...
  • jozefg
    Futur Membre du Club
    @Tsilefy Bonjour je suis un développeur (très) amateur et comme il se doit pour un amateur je développe sous Windows (64). J'utilise Notepad comme éditeur car justement je n'ai pas trouvé un IDE. Une suggestion serais bien venu.

    Merci
    Jozef
  • dukoid
    Membre expert
    j'utilise également PHPStorm. pour moi c'est le meilleur EDI.

    il supporte tous les frameworks( Symfony, angular...)

    et on peux configurer pas mal de chose automatique, par exemple j'utilise Sass pour le Css. Avec un watcher phpStorm à chaque modification du SCSS, le CSS est généré par phpStorm.
    de plus , il y a un terminal dans phpStorm ou tu lances tes commandes comme les commandes Symfony.. et pleins d'autres choses encore.
  • jozefg
    Futur Membre du Club
    merci ! Sublime Text installé. A l'occasion je vais voir PHPStorm

    Une question subsidiaire : Toutes mes applications sont faites avec Symfony 2. Je suis resté avec la 2.3. Faut-il faire upgrade à 2.8, passer au Symfony 3.0, attendre la 3.1 Master ou il est urgent d'attendre sachant que mes application ou sites sont hébergé chez OVH.

    De même faut-il passer au PHP 7 ?

    Merci
  • dukoid
    Membre expert
    ça serais bien de passer au moins à Symfony2.8, il est en LTS jusqu'en nov.2018 (support et correction de bugs)
    tu fais la chasse au deprecated et ton appli sf2.8 aura déjà un pied vers Symfony3
  • Tsilefy
    Membre émérite
    Si tu développes avec Symfony, PhpStorm te sera beaucoup plus utile que Sublime Text pour le coup. PhpStorm te donnera l'auto-complétion et l'auto formatage sur toutes les classes Symfony.
  • Mickael_Istria
    Membre émérite
    Eclipse IDE a aussi un bon support PHP de base qui se trouve sur https://eclipse.org/downloads/ . A noter que Zend propose un truc pas mal basé sur Eclipse mais payant: http://www.zend.com/en/products/studio