Slide 1

Slide 1 text

What's new in Symfony 7.1 @nicolasgrekas

Slide 2

Slide 2 text

is a set of low-level building blocks that you can assemble to develop powerful high-level features easily

Slide 3

Slide 3 text

symfony.com/releases

Slide 4

Slide 4 text

Backward Compatibility Promise • Upgrade every month for bug fixes • Upgrade every 6 months for features

Slide 5

Slide 5 text

Continuous Upgrade Path • Fix deprecations every 6 months • Upgrade every 2 years for new major

Slide 6

Slide 6 text

Symfony 7 • Remove deprecated code paths • Add native types • Add generic types • Leverage new syntaxes

Slide 7

Slide 7 text

PHP RFC DOM HTML5 parsing, serialization and opt-in spec-compliance Deprecate implicitly nullable parameter types Increasing the default BCrypt cost Resource to object conversion Allow fiber switching in destructors

Slide 8

Slide 8 text

Features

Slide 9

Slide 9 text

New components #52510 [TypeInfo] (mtarld, Korbeil) #53096 [Emoji] Move emoji data out of [Intl] (smnandre)

Slide 10

Slide 10 text

Notifier #53927 Add Pushy bridge (stloyd) #53734 Add SMSense bridge (jimiero) #52936 Add Seven.io bridge (NeoBlack) #52976 Add sms-sluzba.cz bridge (dfridrich) #53148 Add Smsbox bridge (Alan ZARLI) #53092 Add Unifonic bridge (seferov) #53083 Add Bluesky bridge (Nyholm)

Slide 11

Slide 11 text

Mailer #53740 Add MailerSend webhook & remote event (doobas) #53621 Add auto_tls to disable automatic STARTTLS (srsbiz) #53554 Add Resend bridge (welcoMattic) #52842 Add Azure bridge (hafael)

Slide 12

Slide 12 text

Dependency Injection #52922 Add #[Lazy] for classes and arguments (Tiriel) #54016 Add #[AutowireMethodOf] (nicolas-grekas) #52820 #[AutowireInline] for inline service definition (DaDeather) #52369 Add urlencode function to EnvVarProcessor (crtl)

Slide 13

Slide 13 text

Dependency Injection #52369 Add urlencode function to EnvVarProcessor (crtl) # config/packages/mailer.yaml framework: mailer: dsn: 'smtp://%env(urlencode:SMTP_USER)%:%env(urlencode

Slide 14

Slide 14 text

Dependency Injection #52820 #[AutowireInline] for inline service definition (DaDeather) public function __construct( #[AutowireInline( factory: [ ScopingHttpClient::class, 'forBaseUri' ], arguments: [ '$baseUri' => 'https://example.com', ], )] private HttpClientInterface $client, ) { }

Slide 15

Slide 15 text

HttpClient #53550 Add ThrottlingHttpClient (HypeMC) #52970 Add [Json]MockResponse::fromFile() (fancyweb)

Slide 16

Slide 16 text

WebProfiler #53885 Search inside profiler tables (javiereguiluz)

Slide 17

Slide 17 text

WebProfiler #53885 Search inside profiler tables (javiereguiluz)

Slide 18

Slide 18 text

HttpKernel #54153 Accept boolean values for MapQueryString (Jean-Beru) => https://www.example.com/products?available=true #54107 Add NearMissValueResolverException and improve error reporting when requiring the wrong Request class (ilyachase) => Looks like you required a Request object with the wrong class name. Did you mean to use "Symfony\Component\ HttpFoundation\Request" instead?

Slide 19

Slide 19 text

String #52198 New locale aware casing methods (bram123)

Slide 20

Slide 20 text

String #52198 New locale aware casing methods (bram123) $string = u('άδικος'); $string->upper(); // ΆΔΙΚΟΣ $string->localeUpper('el'); // ΑΔΙΚΟΣ $string = u('ijssel'); $string->title(); // Ijssel $string->localeTitle('nl'); // IJssel

Slide 21

Slide 21 text

HttpFoundation #52493 Add UploadedFile::getClientOriginalPath() (danielburger1337)

Slide 22

Slide 22 text

HttpFoundation #52493 Add UploadedFile::getClientOriginalPath() (danielburger1337)

Slide 23

Slide 23 text

Uid #53060 Add UuidV1/6::toV6/7() (fancyweb) => Migrate to lexicographically sortable UUIDs

Slide 24

Slide 24 text

TwigBridge #54432 Add emojify twig filter (lyrixx)

Slide 25

Slide 25 text

TwigBridge #54432 Add emojify twig filter (lyrixx)

Slide 26

Slide 26 text

New components Under discussion: #51649+#53213 [FeatureFlags](Neirda24/Jean-Beru) #51718 [JsonEncoder] (mtarld) #51741 [ObjectMapper] (soyuka) #53346 [Uri] (alexandre-daubois) #54013 [AccessToken] (pounard)

Slide 27

Slide 27 text

UX Live Components ux-icons class-variance-authority Idiomorph and turbo 8

Slide 28

Slide 28 text

Credits

Slide 29

Slide 29 text

Hundreds of contributors

Slide 30

Slide 30 text

Backers for 7.1 And … your logo?

Slide 31

Slide 31 text

symfony.com/slack Twitter LinkedIn Mutual aid Kindness CARE team

Slide 32

Slide 32 text

Thank you and see you soon!