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 : | Sélectionner tout |
1 2 3 4 5 6 | $bar = new ProgressBar($output, 10); $bar->start(); for ($i = 1; $i < 5; $i++) { usleep(200000); $bar->advance(); } |
Code : | Sélectionner tout |
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 ?
Que pensez-vous de Symfony 3.0
Voir aussi
Forum Symfony 2