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.
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 :
Au lieu de celui-ci :
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.
Au niveau des correctifs, nous avons entre autres les bogues suivants qui ont été corrigés :
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
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(); } |
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(); |
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 ?
Voir aussi
-
GuikingoneMembre é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.le 08/12/2015 à 8:47 -
TsilefyMembre émériteMon 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.le 26/02/2016 à 1:19 -
dukoidMembre expertsurferIX est un TROLL teigneux et têtu, il nous laissera pas vivre sur ce forum en paixle 09/12/2015 à 17:14
-
TsilefyMembre émériteTu ne dois pas connaître ce petit outil qui s'appelle un IDE avec l'autocomplétion...le 09/12/2015 à 19:20
-
jozefgFutur 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
Jozefle 25/02/2016 à 15:25 -
dukoidMembre expertj'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.le 26/02/2016 à 11:13 -
jozefgFutur Membre du Clubmerci ! 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 ?
Mercile 26/02/2016 à 15:45 -
dukoidMembre 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 Symfony3le 26/02/2016 à 20:19 -
TsilefyMembre émériteSi 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.le 27/02/2016 à 1:45
-
Mickael_IstriaMembre émériteEclipse 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/studiole 29/02/2016 à 10:48