From 9909a882f2b0d1f3141ad2017ea28e5e69b2977c Mon Sep 17 00:00:00 2001 From: Ferror Date: Wed, 2 Nov 2022 19:56:55 +0100 Subject: [PATCH 1/4] [maintenance] - Use symfony runtime component --- bin/console | 35 ++++++----------------------------- composer.json | 4 +++- public/index.php | 26 ++++---------------------- src/Kernel.php | 4 ++-- symfony.lock | 6 ------ 5 files changed, 15 insertions(+), 60 deletions(-) diff --git a/bin/console b/bin/console index 52fd3989fb..13506e61ce 100755 --- a/bin/console +++ b/bin/console @@ -3,36 +3,13 @@ use App\Kernel; use Symfony\Bundle\FrameworkBundle\Console\Application; -use Symfony\Component\Console\Input\ArgvInput; -use Symfony\Component\Debug\Debug; -set_time_limit(0); - -require dirname(__DIR__).'/vendor/autoload.php'; - -if (!class_exists(Application::class)) { - throw new RuntimeException('You need to add "symfony/framework-bundle" as a Composer dependency.'); +if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) { + throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".'); } -$input = new ArgvInput(); -if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) { - putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env); -} +require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; -if ($input->hasParameterOption('--no-debug', true)) { - putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0'); -} - -require dirname(__DIR__).'/config/bootstrap.php'; - -if ($_SERVER['APP_DEBUG']) { - umask(0000); - - if (class_exists(Debug::class)) { - Debug::enable(); - } -} - -$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); -$application = new Application($kernel); -$application->run($input); +return static function (array $context) { + return new Application(new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG'])); +}; diff --git a/composer.json b/composer.json index 265fe6838e..6e9b13ab38 100644 --- a/composer.json +++ b/composer.json @@ -114,6 +114,7 @@ "symfony/property-info": "^5.4 || ^6.0", "symfony/proxy-manager-bridge": "^5.4 || ^6.0", "symfony/routing": "^5.4 || ^6.0", + "symfony/runtime": "^5.4 || ^6.0", "symfony/security-bundle": "^5.4 || ^6.0", "symfony/security-core": "^5.4 || ^6.0", "symfony/security-csrf": "^5.4 || ^6.0", @@ -240,7 +241,8 @@ "sort-packages": true, "allow-plugins": { "symfony/flex": true, - "dealerdirect/phpcodesniffer-composer-installer": false + "dealerdirect/phpcodesniffer-composer-installer": false, + "symfony/runtime": false } }, "extra": { diff --git a/public/index.php b/public/index.php index db05775c9f..508a169254 100644 --- a/public/index.php +++ b/public/index.php @@ -3,27 +3,9 @@ declare(strict_types=1); use App\Kernel; -use Symfony\Component\ErrorHandler\Debug; -use Symfony\Component\HttpFoundation\Request; -require dirname(__DIR__) . '/config/bootstrap.php'; +require_once dirname(__DIR__).'/vendor/autoload_runtime.php'; -if ($_SERVER['APP_DEBUG']) { - umask(0000); - - Debug::enable(); -} - -if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? $_ENV['TRUSTED_PROXIES'] ?? false) { - Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_ALL ^ Request::HEADER_X_FORWARDED_HOST); -} - -if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? $_ENV['TRUSTED_HOSTS'] ?? false) { - Request::setTrustedHosts([$trustedHosts]); -} - -$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']); -$request = Request::createFromGlobals(); -$response = $kernel->handle($request); -$response->send(); -$kernel->terminate($request, $response); +return static function (array $context) { + return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']); +}; diff --git a/src/Kernel.php b/src/Kernel.php index 02a6b93a6f..25c5752498 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -24,7 +24,7 @@ class Kernel extends BaseKernel protected function getContainerBaseClass(): string { - if ($this->isTestEnvironment() && class_exists(MockerContainer::class)) { + if (class_exists(MockerContainer::class) && $this->isTestEnvironment()) { return MockerContainer::class; } @@ -33,6 +33,6 @@ class Kernel extends BaseKernel private function isTestEnvironment(): bool { - return 0 === strpos($this->getEnvironment(), 'test'); + return str_contains($this->getEnvironment(), 'test'); } } diff --git a/symfony.lock b/symfony.lock index a781f64ee6..c6ec3e47ed 100644 --- a/symfony.lock +++ b/symfony.lock @@ -170,9 +170,6 @@ "felixfbecker/language-server-protocol": { "version": "v1.4.0" }, - "fig/link-util": { - "version": "1.1.0" - }, "friends-of-behat/mink": { "version": "v1.8.0" }, @@ -376,9 +373,6 @@ "pagerfanta/pagerfanta": { "version": "v3.5.2" }, - "paragonie/random_compat": { - "version": "v2.0.18" - }, "payum/iso4217": { "version": "1.0.1" }, From ef027bf0e8b6fe2d2da6dae6ec783727926dbd0a Mon Sep 17 00:00:00 2001 From: Ferror Date: Thu, 3 Nov 2022 00:01:11 +0100 Subject: [PATCH 2/4] enable runtime --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 6e9b13ab38..75e6f5c77e 100644 --- a/composer.json +++ b/composer.json @@ -242,7 +242,7 @@ "allow-plugins": { "symfony/flex": true, "dealerdirect/phpcodesniffer-composer-installer": false, - "symfony/runtime": false + "symfony/runtime": true } }, "extra": { From 2e01cac440c062d3693095eba21b5b588ab879c3 Mon Sep 17 00:00:00 2001 From: Ferror Date: Tue, 15 Nov 2022 17:35:35 +0100 Subject: [PATCH 3/4] Move runtime to dev dependencies --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 75e6f5c77e..eb9692efa7 100644 --- a/composer.json +++ b/composer.json @@ -114,7 +114,6 @@ "symfony/property-info": "^5.4 || ^6.0", "symfony/proxy-manager-bridge": "^5.4 || ^6.0", "symfony/routing": "^5.4 || ^6.0", - "symfony/runtime": "^5.4 || ^6.0", "symfony/security-bundle": "^5.4 || ^6.0", "symfony/security-core": "^5.4 || ^6.0", "symfony/security-csrf": "^5.4 || ^6.0", @@ -224,6 +223,7 @@ "symfony/debug-bundle": "^5.4 || ^6.0", "symfony/dotenv": "^5.4 || ^6.0", "symfony/flex": "^1.7", + "symfony/runtime": "^5.4 || ^6.0", "symfony/web-profiler-bundle": "^5.4 || ^6.0", "symplify/monorepo-builder": "^11.0", "vimeo/psalm": "^4.19" @@ -240,8 +240,8 @@ }, "sort-packages": true, "allow-plugins": { - "symfony/flex": true, "dealerdirect/phpcodesniffer-composer-installer": false, + "symfony/flex": true, "symfony/runtime": true } }, From 0c8b6ea1d7555e60f5373e86e729a36797d0d8f4 Mon Sep 17 00:00:00 2001 From: Ferror Date: Tue, 15 Nov 2022 17:38:05 +0100 Subject: [PATCH 4/4] use str_starts_with function --- src/Kernel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Kernel.php b/src/Kernel.php index 25c5752498..c0e9b01c99 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -33,6 +33,6 @@ class Kernel extends BaseKernel private function isTestEnvironment(): bool { - return str_contains($this->getEnvironment(), 'test'); + return str_starts_with($this->getEnvironment(), 'test'); } }