Fibers — aka “green threads” — are a low level mechanism to manage parallelism. You probably won’t use them directly in your applications, but frameworks like Amphp and ReactPHP will make extensive use of them.
Array unpacking was already allowed in PHP 7.4, but it only worked with numeric keys. The reason string keys weren’t supported before is because there wasn’t any consensus on how to merge array duplicates. The RFC cleanly solves this by following the semantics of array_merge:
With every release, there’s a bunch of very minor changes to the language. All of them are listed in the UPGRADING guide on GitHub and the small deprecations RFC, make sure to check it out if you want to know every little detail.
Today, PHP is used by almost 80% of all the websites whose server-side programming language we know. Popular websites such as Slack, Etsy, Wikipedia, WordPress, Mailchimp, Canva, Indeed, Investing.com, and others are powered by PHP.
However, in the coming months, many websites that fail to upgrade to the latest version of PHP 8 will be left running unsupported versions.
PHP 7 was released back in 2015, and 68% of PHP-based websites still use PHP 7. Meanwhile, PHP 8 was released in November 2020, yet only ~ 1% of PHP-based websites currently use it!
This slow uptake of PHP 8 will become a much higher priority upgrade for organizations very soon. In fact, PHP 7 loses active support next month and loses security support in one year!
Extended support for PHP 7.4 will end on November 28, 2022. After this date, applications will continue to run; however, those applications will be out of support and at risk of security vulnerabilities that remain unpatched.
In addition, after November 28, 2022, Microsoft will no longer support PHP, and mainly Unix-based distros such as Linux will be the OS supported by future versions of PHP and continued feature, quality, and security updates.
Symfony 4.4.33 has just been released. Here is a list of the most important changes:
bug #43798 [Dotenv] Duplicate $_SERVER values in $_ENV if they don’t exist (@fancyweb)
bug #43799 [PhpUnitBridge] fix symlink to bridge in docker by making its path relative (@nicolas-grekas)
bug #43781 [Messenger] Fix TraceableMessageBus implementation so it can compute caller even when used within a callback (@Ocramius)
bug #43655 [VarDumper] Fix dumping twig templates found in exceptions (@event15)
bug #43484 [Messenger] Fix Redis Transport when username is empty (@villfa)
bug #43568 [Messenger] fix: TypeError in PhpSerializer::encode() (@dsech)
bug #43591 [Config] Fix files sorting in GlobResource (@lyrixx)
bug #43569 [HttpClient] fix collecting debug info on destruction of CurlResponse (@nicolas-grekas)
bug #43545 [DependencyInjection] fix “url” env var processor (@nicolas-grekas)
bug #43413 [VarDumper] Fix error with uninitialized XMLReader (@villfa)
bug #43388 [Validator] Fixes URL validation for single-char subdomains (@DfKimera)
bug #43333 [HttpClient] fix missing kernel.reset tag on TraceableHttpClient services (@nicolas-grekas)
bug #43302 [Cache] Commit items implicitly only when deferred keys are requested (@Sergey Belyshkin)
bug #43330 [Cache][Lock] fix SQLSRV throws for method_exists() (@GDmac)
bug #43270 [VarDumper] Fix handling of “new” in initializers on PHP 8.1 (@nicolas-grekas)
bug #43277 [DependencyInjection] fix support for “new” in initializers on PHP 8.1 (@nicolas-grekas)
bug #43243 [HttpClient] accept headers when CURLE_RECV_ERROR is received before the content (@nicolas-grekas)
bug #43205 [Serializer] Fix denormalizing XML array with empty body (4.4) (@alexandre-daubois)
Want to upgrade to this new release? Because Symfony protects backwards-compatibility very closely, this should be quite easy. Use SymfonyInsight upgrade reports to detect the code you will need to change in your project and read our upgrade documentation to learn more.