Contributed by Nicolas Grekas in #38465 and #40513.
Symfony 5.3 was released on May 31, 2021. Although we’ve published many articles about new Symfony 5.3 features, there are some interesting new features that we haven’t discussed yet. The first one is the new Runtime Component. The purpose of the Runtime component is to abstract most of the application bootstrapping logic into so-called runtimes, allowing you to write generic front-controllers. This will make Symfony applications easier to maintain, because the front-controller code can be moved to a Symfony Flex recipe managed automatically by Symfony. In addition, this component decouples the bootstrapping from any global state to make sure the application can run with runtimes like PHP-FPM, ReactPHP, Swoole, etc. without any changes. If you open your public/index.php file, you’ll see some code like this: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22// public/index.php <?php
use App\Kernel; use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\ErrorHandler\Debug; use Symfony\Component\HttpFoundation\Request;
require dirname(DIR).'/vendor/autoload.php';
(new Dotenv())->bootEnv(dirname(DIR).'/.env');
if ($_SERVER['APP_DEBUG']) { umask(0000); Debug::enable(); }
$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); $request = Request::createFromGlobals(); $response = $kernel->handle($request); $response->send(); $kernel->terminate($request, $response);
In addition to some autoloading and configuration, this file contains the code needed to process the well-known Symfony Request-Response flow. In a new Symfony 5.3 application, the same front-controller uses Symfony Runtime and its code looks as follows: 1 2 3 4 5 6 7 8 9 10// public/index.php <?php
use App\Kernel;
require_once dirname(DIR).'/vendor/autoload_runtime.php';
return function (array $context) { return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); };
Why is the new front-controller code so concise? Where is the request turned into a response? What’s this autoload_runtime.php file? Read the new Runtime component docs to learn about all this and more. You will also learn how to tweak this runtime and how to create your own runtimes. If you are upgrading an existing application to Symfony 5.3, you can start using this new component as follows:
Install the component by running composer require symfony/runtime Update your front controller using the public/index.php code found in Symfony’s FrameworkBundle recipe Update your console script using the bin/console code found in Symfony’s Console recipe
If you want to learn more about this component, join the SymfonyWorld Online 2021 Summer Edition conference (June 17-18, 2021), where Tobias Nyholm will deliver a talk titled “Runtime component: The game changer”.
Sponsor the Symfony project.
http://feedproxy.google.com/~r/symfony/blog/~3/rAuSFR_e6s4/new-in-symfony-5-3-runtime-component
Connectez-vous pour ajouter un commentaire
Autres messages de ce groupe
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
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
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
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
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
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
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,