Preparing Your Apps and Bundles for Symfony 6

According to Symfony Release Process, every two years Symfony releases the last version of a branch (X.4) and the first version of the next branch (Y.0) at the same time. That will happen at the end of November 2021, when both Symfony 5.4 and Symfony 6.0 will be released. The main difference between them is that Symfony 5.4 will still contain all deprecated features and you can use it in applications using those deprecated features. Symfony 6.0 removes all deprecated features. You'll need to upgrade to 5.4 first, remove all deprecations in your code and then upgrade to 6.0. Introducing PHP Types Everywhere This time, both Symfony 5.4 and 6.0 will include another change that might have a big impact in your applications: they add PHP types in all properties, arguments and return values of methods whenever possible. This was a titanic multi-year effort led by Nicolas Grekas and Alexander M. Turek that could be completed in time for Symfony 5.4 and 6.0. The following is a real example of the impact of this change in your applications. If you have a user class implementing Symfony's UserInterface, your code will probably include this:

    1

2 3 4 5 6 7 8 9 10 11 12 13 14 // src/Entity/User.php namespace App\Entity;

use Symfony\Component\Security\Core\User\UserInterface;

class User implements UserInterface { // ...

public function getRoles()
{
    // ...
}

}

This is no longer correct in Symfony 5.4/6.0. The reason is that Symfony has added the array return type to the getRoles() method. Because of how types work in PHP, this means that it's mandatory for you to add the return type in your code:

    1

2 3 4 public function getRoles(): array { // ... }

Adding PHP Types in your Own Code Adding all the required PHP types in your applications can be a time-consuming and cumbersome task. In order to make it easier, Symfony will provide several tools: When upgrading to Symfony 5.4, you'll see deprecation messages whenever a missing type in your code would cause a PHP error when upgrading; The ErrorHandler component includes a little command utility called patch-type-declarations which automatically adds the required return types in your code; For third-party open source packages/bundles, the upgrade process is similar but you need to follow some extra steps to avoid backward compatibility breaks. The whole upgrade process for Symfony apps and open source bundles is explained in detail in the following blog post published by Wouter de Jong, a Symfony Core Team member: Symfony 6: PHP 8 Native Types & Why we Need YOU If you are an open source package/bundle developer we need your help. Please, test your bundles with Symfony 5.4 and 6.0 as soon as possible and report any problems in this meta issue in the Symfony repository. Depending on the received feedback, we might postpone some PHP type changes until Symfony 7.0. Thanks for your help!

                Sponsor the Symfony project.

http://feedproxy.google.com/~r/symfony/blog/~3/uXBX_4O0CUw/preparing-your-apps-and-bundles-for-symfony-6

Created 3y | Sep 17, 2021, 9:20:22 AM


Login to add comment

Other posts in this group

SymfonyLive Berlin 2025: Need a MACH-ready Search Engine?

SymfonyLive Berlin 2025, conference held in English, will take place from April 1 to 4! The schedule is being revealed gradually. More details are available here.

As we are now unveiling th

Jan 24, 2025, 11:20:16 AM | Symfony
SymfonyLive Paris 2025 : Rôles & permissions : développez une marque blanche avec du Feature Flipping

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here.

Al

Jan 23, 2025, 4:50:03 PM | Symfony
SymfonyLive Berlin 2025: So you think you know PHPUnit

SymfonyLive Berlin 2025, conference held in English, will take place from April 1 to 4! The schedule is being revealed gradually. More details are available here.

First, a big thank you to

Jan 22, 2025, 8:20:10 AM | Symfony
SymfonyLive Paris 2025 : Passkeys pour une authentification fluide et sécurisée

SymfonyLive Paris 2025, conference in French language only, will take place from March 27 to 28! The schedule is currently being revealed as we go along. More details are available here.

To

Jan 21, 2025, 11:30:10 AM | Symfony
Join us for SymfonyDay Chicago – March 17, 2025!

Mark your calendars for March 17, 2025 because SymfonyDay Chicago 2025 promises to be a one-of-a-kind event that you won’t want to miss! This full day is dedicated to celebrating the incredible contri

Jan 20, 2025, 7:20:03 PM | Symfony
A Week of Symfony #942 (13-19 January 2025)

This week, Symfony celebrated the SymfonyOnline January 2025 conference. In addition, it announced the new Symfony UX Core Team. Lastly, the upcoming Symfony 7.3 version simplified the configuration o

Jan 19, 2025, 8:30:08 AM | Symfony
Announcing the Symfony UX Core Team

The Symfony UX initiative was announced in December 2020. It was introduced to enhance the developer experience by integrating JavaScript tools and libraries more seamlessly with Symfony applications,

Jan 13, 2025, 3:40:04 PM | Symfony