From 2558047dd751b384e9f86093895857951d0d6f80 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 17 Nov 2019 15:23:51 +0100 Subject: [PATCH 01/23] updated CHANGELOG for 4.4.0-RC1 --- CHANGELOG-4.4.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/CHANGELOG-4.4.md b/CHANGELOG-4.4.md index facb38ff1c67..0f975d9e83dd 100644 --- a/CHANGELOG-4.4.md +++ b/CHANGELOG-4.4.md @@ -7,6 +7,30 @@ in 4.4 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v4.4.0...v4.4.1 +* 4.4.0-RC1 (2019-11-17) + + * bug #34419 [Cache] Disable igbinary on PHP >= 7.4 (nicolas-grekas) + * bug #34347 [Messenger] Perform no deep merging of bus middleware (vudaltsov) + * bug #34366 [HttpFoundation] Allow redirecting to URLs that contain a semicolon (JayBizzle) + * feature #34405 [HttpFoundation] Added possibility to configure expiration time in redis session handler (mantulo) + * bug #34397 [FrameworkBundle] Remove project dir from Translator cache vary scanned directories (fancyweb) + * bug #34384 [DoctrineBridge] Improve queries parameters display in Profiler (fancyweb) + * bug #34408 [Cache] catch exceptions when using PDO directly (xabbuh) + * bug #34411 [HttpKernel] Flatten "exception" controller argument if not typed (chalasr) + * bug #34410 [HttpFoundation] Fix MySQL column type definition. (jbroutier) + * bug #34403 [Cache] Redis Tag Aware warn on wrong eviction policy (andrerom) + * bug #34400 [HttpKernel] collect bundle classes, not paths (nicolas-grekas) + * bug #34398 [Config] fix id-generation for GlobResource (nicolas-grekas) + * bug #34404 [HttpClient] fix HttpClientDataCollector (nicolas-grekas) + * bug #34396 [Finder] Allow ssh2 stream wrapper for sftp (damienalexandre) + * bug #34383 [DI] Use reproducible entropy to generate env placeholders (nicolas-grekas) + * bug #34389 [WebProfilerBundle] add FrameworkBundle requirement (xabbuh) + * bug #34381 [WebProfilerBundle] Require symfony/twig-bundle (fancyweb) + * bug #34358 [Security] always check the token on non-lazy firewalls (nicolas-grekas, lyrixx) + * bug #34390 [FrameworkBundle] fix wiring of httplug client (nicolas-grekas) + * bug #34369 [FrameworkBundle] Disallow WebProfilerBundle < 4.4 (derrabus) + * bug #34370 [DI] fix detecting singly implemented interfaces (nicolas-grekas) + * 4.4.0-BETA2 (2019-11-13) * bug #34344 [Console] Constant STDOUT might be undefined (nicolas-grekas) From bef727c6730b51aa733adefab3edc4c70f025fc7 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 17 Nov 2019 15:24:08 +0100 Subject: [PATCH 02/23] updated VERSION for 4.4.0-RC1 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 47f0b49b58d8..4b1ee5ea0aae 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '4.4.0-DEV'; + const VERSION = '4.4.0-RC1'; const VERSION_ID = 40400; const MAJOR_VERSION = 4; const MINOR_VERSION = 4; const RELEASE_VERSION = 0; - const EXTRA_VERSION = 'DEV'; + const EXTRA_VERSION = 'RC1'; const END_OF_MAINTENANCE = '11/2022'; const END_OF_LIFE = '11/2023'; From 7ed6d35f2cbd21ee5b6ec019787a664003097ced Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 17 Nov 2019 15:29:13 +0100 Subject: [PATCH 03/23] bumped Symfony version to 4.4.0 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 4b1ee5ea0aae..47f0b49b58d8 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -76,12 +76,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '4.4.0-RC1'; + const VERSION = '4.4.0-DEV'; const VERSION_ID = 40400; const MAJOR_VERSION = 4; const MINOR_VERSION = 4; const RELEASE_VERSION = 0; - const EXTRA_VERSION = 'RC1'; + const EXTRA_VERSION = 'DEV'; const END_OF_MAINTENANCE = '11/2022'; const END_OF_LIFE = '11/2023'; From 10aac86d6f42de3e543bf4cbed90fb00f6515a21 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sun, 17 Nov 2019 18:19:46 +0100 Subject: [PATCH 04/23] Bump Symfony version to 5.0.0 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index edaf8db5142f..6c38e9e96dbe 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -68,12 +68,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '5.0.0-RC1'; + const VERSION = '5.0.0-DEV'; const VERSION_ID = 50000; const MAJOR_VERSION = 5; const MINOR_VERSION = 0; const RELEASE_VERSION = 0; - const EXTRA_VERSION = 'RC1'; + const EXTRA_VERSION = 'DEV'; const END_OF_MAINTENANCE = '07/2020'; const END_OF_LIFE = '07/2020'; From 7b7f9667119a7de82cc9d2c8a828d4d479929697 Mon Sep 17 00:00:00 2001 From: Nardberjean Date: Sun, 17 Nov 2019 11:11:27 -0500 Subject: [PATCH 05/23] Update HttpKernel.php --- src/Symfony/Component/HttpKernel/HttpKernel.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/HttpKernel/HttpKernel.php b/src/Symfony/Component/HttpKernel/HttpKernel.php index bca2cd1688e8..9769d5e802b2 100644 --- a/src/Symfony/Component/HttpKernel/HttpKernel.php +++ b/src/Symfony/Component/HttpKernel/HttpKernel.php @@ -62,7 +62,7 @@ public function __construct(EventDispatcherInterface $dispatcher, ControllerReso */ public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true) { - $request->headers->set('X-Php-Ob-Level', ob_get_level()); + $request->headers->set('X-Php-Ob-Level', (string) ob_get_level()); try { return $this->handleRaw($request, $type); From c194fffaef3d5df57186117c96f8e99aed82fbbe Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Sun, 17 Nov 2019 22:18:02 +0100 Subject: [PATCH 06/23] Adjust pull request template for 5.0 branchout --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b863dea0cbf9..4d7b45b66b56 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,6 @@ | Q | A | ------------- | --- -| Branch? | 4.4 for features / 3.4 or 4.3 for bug fixes +| Branch? | master for features / 3.4, 4.3, 4.4 or 5.0 for bug fixes | Bug fix? | yes/no | New feature? | yes/no | Deprecations? | yes/no From 934e05c00b89cba6171eeeb19f93e68f43f8352a Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Sun, 17 Nov 2019 22:52:25 +0100 Subject: [PATCH 07/23] Fix PR template --- .github/PULL_REQUEST_TEMPLATE.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4d7b45b66b56..0d234d8fe9b7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -16,6 +16,5 @@ Additionally (see https://symfony.com/roadmap): - Never break backward compatibility (see https://symfony.com/bc). - Bug fixes must be submitted against the lowest maintained branch where they apply (lowest branches are regularly merged to upper ones so they get the fixes too.) - - Features and deprecations must be submitted against branch 4.4. - - Legacy code removals go to the master branch. + - Features and deprecations must be submitted against branch master. --> From e7d0787a4dfe68c33c81f09aa8fb59fe67ea90dc Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Sun, 17 Nov 2019 16:24:49 +0100 Subject: [PATCH 08/23] [Finder] Fixed docs --- src/Symfony/Component/Finder/Finder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Finder/Finder.php b/src/Symfony/Component/Finder/Finder.php index c8f642d872ce..d2ea17d87a00 100644 --- a/src/Symfony/Component/Finder/Finder.php +++ b/src/Symfony/Component/Finder/Finder.php @@ -736,7 +736,7 @@ private function searchInDirectory($dir) /** * Normalizes given directory names by removing trailing slashes. * - * Excluding: (s)ftp:// wrapper + * Excluding: (s)ftp:// or ssh2.(s)ftp:// wrapper * * @param string $dir * From 4132a6039264fc990879dabfcfb68d4dac68e984 Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Sun, 17 Nov 2019 23:40:05 +0100 Subject: [PATCH 09/23] [Security] Fix best encoder not wired using migrate_from --- .../Component/Security/Core/Encoder/EncoderFactory.php | 4 +++- .../Security/Core/Tests/Encoder/EncoderFactoryTest.php | 5 ++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Security/Core/Encoder/EncoderFactory.php b/src/Symfony/Component/Security/Core/Encoder/EncoderFactory.php index a58442769bde..4bc9596ce3f8 100644 --- a/src/Symfony/Component/Security/Core/Encoder/EncoderFactory.php +++ b/src/Symfony/Component/Security/Core/Encoder/EncoderFactory.php @@ -114,7 +114,9 @@ private function getEncoderConfigFromAlgorithm(array $config): array } if ($fromEncoders = ($config['migrate_from'] ?? false)) { - $encoderChain = []; + unset($config['migrate_from']); + $encoderChain = [$this->createEncoder($config, true)]; + foreach ($fromEncoders as $name) { if ($encoder = $this->encoders[$name] ?? false) { $encoder = $encoder instanceof PasswordEncoderInterface ? $encoder : $this->createEncoder($encoder, true); diff --git a/src/Symfony/Component/Security/Core/Tests/Encoder/EncoderFactoryTest.php b/src/Symfony/Component/Security/Core/Tests/Encoder/EncoderFactoryTest.php index c8d73d5b1584..a25f23528708 100644 --- a/src/Symfony/Component/Security/Core/Tests/Encoder/EncoderFactoryTest.php +++ b/src/Symfony/Component/Security/Core/Tests/Encoder/EncoderFactoryTest.php @@ -143,9 +143,7 @@ public function testMigrateFrom() $factory = new EncoderFactory([ 'digest_encoder' => $digest = new MessageDigestPasswordEncoder('sha256'), - 'pbdkf2' => $digest = new MessageDigestPasswordEncoder('sha256'), - 'bcrypt_encoder' => ['algorithm' => 'bcrypt'], - SomeUser::class => ['algorithm' => 'sodium', 'migrate_from' => ['bcrypt_encoder', 'digest_encoder']], + SomeUser::class => ['algorithm' => 'sodium', 'migrate_from' => ['bcrypt', 'digest_encoder']], ]); $encoder = $factory->getEncoder(SomeUser::class); @@ -154,6 +152,7 @@ public function testMigrateFrom() $this->assertTrue($encoder->isPasswordValid((new SodiumPasswordEncoder())->encodePassword('foo', null), 'foo', null)); $this->assertTrue($encoder->isPasswordValid((new NativePasswordEncoder(null, null, null, \PASSWORD_BCRYPT))->encodePassword('foo', null), 'foo', null)); $this->assertTrue($encoder->isPasswordValid($digest->encodePassword('foo', null), 'foo', null)); + $this->assertStringStartsWith(SODIUM_CRYPTO_PWHASH_STRPREFIX, $encoder->encodePassword('foo', null)); } public function testDefaultMigratingEncoders() From 754fbe41fb2ed8335236d5cd42fe42a4fe0a651f Mon Sep 17 00:00:00 2001 From: Graham Campbell Date: Sun, 17 Nov 2019 22:49:13 +0000 Subject: [PATCH 10/23] Removed extra whitespace --- .../Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php b/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php index 68a9d6bb14dc..84cb9da42413 100644 --- a/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php +++ b/src/Symfony/Component/ErrorHandler/ErrorRenderer/HtmlErrorRenderer.php @@ -52,7 +52,7 @@ public function __construct(bool $debug = false, string $charset = null, $fileLi /** * {@inheritdoc} */ - public function render(\Throwable $exception): FlattenException + public function render(\Throwable $exception): FlattenException { $exception = FlattenException::createFromThrowable($exception, null, [ 'Content-Type' => 'text/html; charset='.$this->charset, From dede9145dcb0b5f7c213175bb75e28208c09dd5b Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Mon, 18 Nov 2019 00:44:50 +0100 Subject: [PATCH 11/23] [HttpKernel] Drop deprecated ExceptionListener --- src/Symfony/Component/HttpKernel/CHANGELOG.md | 1 + .../EventListener/ExceptionListener.php | 127 -------------- .../EventListener/ExceptionListenerTest.php | 159 ------------------ 3 files changed, 1 insertion(+), 286 deletions(-) delete mode 100644 src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php delete mode 100644 src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php diff --git a/src/Symfony/Component/HttpKernel/CHANGELOG.md b/src/Symfony/Component/HttpKernel/CHANGELOG.md index bd04d6527da3..adcbe66f66a4 100644 --- a/src/Symfony/Component/HttpKernel/CHANGELOG.md +++ b/src/Symfony/Component/HttpKernel/CHANGELOG.md @@ -27,6 +27,7 @@ CHANGELOG * removed the second and third argument of `FileLocator::__construct` * removed loading resources from `%kernel.root_dir%/Resources` and `%kernel.root_dir%` as fallback directories. + * removed class `ExceptionListener`, use `ErrorListener` instead 4.4.0 ----- diff --git a/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php b/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php deleted file mode 100644 index 7f87d9501907..000000000000 --- a/src/Symfony/Component/HttpKernel/EventListener/ExceptionListener.php +++ /dev/null @@ -1,127 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\HttpKernel\EventListener; - -use Psr\Log\LoggerInterface; -use Symfony\Component\ErrorHandler\Exception\FlattenException; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\EventDispatcher\EventSubscriberInterface; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpKernel\Event\ExceptionEvent; -use Symfony\Component\HttpKernel\Exception\HttpExceptionInterface; -use Symfony\Component\HttpKernel\HttpKernelInterface; -use Symfony\Component\HttpKernel\KernelEvents; -use Symfony\Component\HttpKernel\Log\DebugLoggerInterface; - -/** - * @author Fabien Potencier - * - * @final - */ -class ExceptionListener implements EventSubscriberInterface -{ - protected $controller; - protected $logger; - protected $debug; - - public function __construct($controller, LoggerInterface $logger = null, bool $debug = false) - { - $this->controller = $controller; - $this->logger = $logger; - $this->debug = $debug; - } - - public function logKernelException(ExceptionEvent $event) - { - $e = FlattenException::createFromThrowable($event->getThrowable()); - - $this->logException($event->getThrowable(), sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', $e->getClass(), $e->getMessage(), $e->getFile(), $e->getLine())); - } - - public function onKernelException(ExceptionEvent $event, string $eventName = null, EventDispatcherInterface $eventDispatcher = null) - { - if (null === $this->controller) { - return; - } - - $exception = $event->getThrowable(); - $request = $this->duplicateRequest($exception, $event->getRequest()); - - try { - $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false); - } catch (\Exception $e) { - $f = FlattenException::createFromThrowable($e); - - $this->logException($e, sprintf('Exception thrown when handling an exception (%s: %s at %s line %s)', $f->getClass(), $f->getMessage(), $e->getFile(), $e->getLine())); - - $prev = $e; - do { - if ($exception === $wrapper = $prev) { - throw $e; - } - } while ($prev = $wrapper->getPrevious()); - - $prev = new \ReflectionProperty($wrapper instanceof \Exception ? \Exception::class : \Error::class, 'previous'); - $prev->setAccessible(true); - $prev->setValue($wrapper, $exception); - - throw $e; - } - - $event->setResponse($response); - - if ($this->debug && $eventDispatcher instanceof EventDispatcherInterface) { - $cspRemovalListener = function ($event) use (&$cspRemovalListener, $eventDispatcher) { - $event->getResponse()->headers->remove('Content-Security-Policy'); - $eventDispatcher->removeListener(KernelEvents::RESPONSE, $cspRemovalListener); - }; - $eventDispatcher->addListener(KernelEvents::RESPONSE, $cspRemovalListener, -128); - } - } - - public static function getSubscribedEvents(): array - { - return [ - KernelEvents::EXCEPTION => [ - ['logKernelException', 0], - ['onKernelException', -128], - ], - ]; - } - - protected function logException(\Throwable $exception, string $message) - { - if (null !== $this->logger) { - if (!$exception instanceof HttpExceptionInterface || $exception->getStatusCode() >= 500) { - $this->logger->critical($message, ['exception' => $exception]); - } else { - $this->logger->error($message, ['exception' => $exception]); - } - } - } - - /** - * Clones the request for the exception. - */ - protected function duplicateRequest(\Throwable $exception, Request $request): Request - { - $attributes = [ - '_controller' => $this->controller, - 'exception' => FlattenException::createFromThrowable($exception), - 'logger' => $this->logger instanceof DebugLoggerInterface ? $this->logger : null, - ]; - $request = $request->duplicate(null, null, $attributes); - $request->setMethod('GET'); - - return $request; - } -} diff --git a/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php b/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php deleted file mode 100644 index 28113c14afab..000000000000 --- a/src/Symfony/Component/HttpKernel/Tests/EventListener/ExceptionListenerTest.php +++ /dev/null @@ -1,159 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Symfony\Component\HttpKernel\Tests\EventListener; - -use PHPUnit\Framework\TestCase; -use Symfony\Component\EventDispatcher\EventDispatcher; -use Symfony\Component\HttpFoundation\Request; -use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\HttpKernel\Event\ExceptionEvent; -use Symfony\Component\HttpKernel\Event\ResponseEvent; -use Symfony\Component\HttpKernel\EventListener\ExceptionListener; -use Symfony\Component\HttpKernel\HttpKernelInterface; -use Symfony\Component\HttpKernel\KernelEvents; - -/** - * ExceptionListenerTest. - * - * @author Robert Schönthal - * - * @group time-sensitive - * @group legacy - */ -class ExceptionListenerTest extends TestCase -{ - public function testConstruct() - { - $logger = new TestLogger(); - $l = new ExceptionListener('foo', $logger); - - $_logger = new \ReflectionProperty(\get_class($l), 'logger'); - $_logger->setAccessible(true); - $_controller = new \ReflectionProperty(\get_class($l), 'controller'); - $_controller->setAccessible(true); - - $this->assertSame($logger, $_logger->getValue($l)); - $this->assertSame('foo', $_controller->getValue($l)); - } - - /** - * @dataProvider provider - */ - public function testHandleWithoutLogger($event, $event2) - { - $this->iniSet('error_log', file_exists('/dev/null') ? '/dev/null' : 'nul'); - - $l = new ExceptionListener('foo'); - $l->logKernelException($event); - $l->onKernelException($event); - - $this->assertEquals(new Response('foo'), $event->getResponse()); - - try { - $l->logKernelException($event2); - $l->onKernelException($event2); - $this->fail('RuntimeException expected'); - } catch (\RuntimeException $e) { - $this->assertSame('bar', $e->getMessage()); - $this->assertSame('foo', $e->getPrevious()->getMessage()); - } - } - - /** - * @dataProvider provider - */ - public function testHandleWithLogger($event, $event2) - { - $logger = new TestLogger(); - - $l = new ExceptionListener('foo', $logger); - $l->logKernelException($event); - $l->onKernelException($event); - - $this->assertEquals(new Response('foo'), $event->getResponse()); - - try { - $l->logKernelException($event2); - $l->onKernelException($event2); - $this->fail('RuntimeException expected'); - } catch (\RuntimeException $e) { - $this->assertSame('bar', $e->getMessage()); - $this->assertSame('foo', $e->getPrevious()->getMessage()); - } - - $this->assertEquals(3, $logger->countErrors()); - $this->assertCount(3, $logger->getLogs('critical')); - } - - public function provider() - { - if (!class_exists('Symfony\Component\HttpFoundation\Request')) { - return [[null, null]]; - } - - $request = new Request(); - $exception = new \Exception('foo'); - $event = new ExceptionEvent(new TestKernel(), $request, HttpKernelInterface::MASTER_REQUEST, $exception); - $event2 = new ExceptionEvent(new TestKernelThatThrowsException(), $request, HttpKernelInterface::MASTER_REQUEST, $exception); - - return [ - [$event, $event2], - ]; - } - - public function testSubRequestFormat() - { - $listener = new ExceptionListener('foo', $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock()); - - $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(); - $kernel->expects($this->once())->method('handle')->willReturnCallback(function (Request $request) { - return new Response($request->getRequestFormat()); - }); - - $request = Request::create('/'); - $request->setRequestFormat('xml'); - - $event = new ExceptionEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, new \Exception('foo')); - $listener->onKernelException($event); - - $response = $event->getResponse(); - $this->assertEquals('xml', $response->getContent()); - } - - public function testCSPHeaderIsRemoved() - { - $dispatcher = new EventDispatcher(); - $kernel = $this->getMockBuilder('Symfony\Component\HttpKernel\HttpKernelInterface')->getMock(); - $kernel->expects($this->once())->method('handle')->willReturnCallback(function (Request $request) { - return new Response($request->getRequestFormat()); - }); - - $listener = new ExceptionListener('foo', $this->getMockBuilder('Psr\Log\LoggerInterface')->getMock(), true); - - $dispatcher->addSubscriber($listener); - - $request = Request::create('/'); - $event = new ExceptionEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, new \Exception('foo')); - $dispatcher->dispatch($event, KernelEvents::EXCEPTION); - - $response = new Response('', 200, ['content-security-policy' => "style-src 'self'"]); - $this->assertTrue($response->headers->has('content-security-policy')); - - $event = new ResponseEvent($kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response); - $dispatcher->dispatch($event, KernelEvents::RESPONSE); - - $this->assertFalse($response->headers->has('content-security-policy'), 'CSP header has been removed'); - $this->assertFalse($dispatcher->hasListeners(KernelEvents::RESPONSE), 'CSP removal listener has been removed'); - } -} - -class_exists(ErrorListenerTest::class); From aab9b43d03b6c30cae12f1c594e813c1820f8c6f Mon Sep 17 00:00:00 2001 From: Robin Chalas Date: Mon, 18 Nov 2019 00:27:40 +0100 Subject: [PATCH 12/23] [HttpKernel] Make ErrorListener::onKernelException()'s dispatcher argument explicit --- .../Component/HttpKernel/EventListener/ErrorListener.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php b/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php index 77da3ce3e7a8..4d855b724e34 100644 --- a/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php +++ b/src/Symfony/Component/HttpKernel/EventListener/ErrorListener.php @@ -46,7 +46,7 @@ public function logKernelException(ExceptionEvent $event) $this->logException($event->getThrowable(), sprintf('Uncaught PHP Exception %s: "%s" at %s line %s', $e->getClass(), $e->getMessage(), $e->getFile(), $e->getLine())); } - public function onKernelException(ExceptionEvent $event) + public function onKernelException(ExceptionEvent $event, string $eventName = null, EventDispatcherInterface $eventDispatcher = null) { if (null === $this->controller) { return; @@ -54,7 +54,6 @@ public function onKernelException(ExceptionEvent $event) $exception = $event->getThrowable(); $request = $this->duplicateRequest($exception, $event->getRequest()); - $eventDispatcher = \func_num_args() > 2 ? func_get_arg(2) : null; try { $response = $event->getKernel()->handle($request, HttpKernelInterface::SUB_REQUEST, false); From 0e5db6a03334afeb3c5cc565a7f8c881ff9a9328 Mon Sep 17 00:00:00 2001 From: Thomas Calvet Date: Mon, 18 Nov 2019 09:28:33 +0100 Subject: [PATCH 13/23] [Routing] Fix ContainerLoader and ObjectLoaderTest --- src/Symfony/Component/Routing/Loader/ContainerLoader.php | 2 +- src/Symfony/Component/Routing/Loader/ObjectLoader.php | 2 +- .../Component/Routing/Tests/Loader/ObjectLoaderTest.php | 5 +---- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/Routing/Loader/ContainerLoader.php b/src/Symfony/Component/Routing/Loader/ContainerLoader.php index 948da7b101c0..92bf2a096bf4 100644 --- a/src/Symfony/Component/Routing/Loader/ContainerLoader.php +++ b/src/Symfony/Component/Routing/Loader/ContainerLoader.php @@ -30,7 +30,7 @@ public function __construct(ContainerInterface $container) /** * {@inheritdoc} */ - public function supports($resource, $type = null) + public function supports($resource, string $type = null) { return 'service' === $type; } diff --git a/src/Symfony/Component/Routing/Loader/ObjectLoader.php b/src/Symfony/Component/Routing/Loader/ObjectLoader.php index 2f450f29ed78..aefb8295115a 100644 --- a/src/Symfony/Component/Routing/Loader/ObjectLoader.php +++ b/src/Symfony/Component/Routing/Loader/ObjectLoader.php @@ -52,7 +52,7 @@ public function load($resource, string $type = null) $loaderObject = $this->getObject($parts[0]); if (!\is_object($loaderObject)) { - throw new \LogicException(sprintf('%s:getObject() must return an object: %s returned', \get_class($this), \gettype($loaderObject))); + throw new \TypeError(sprintf('%s:getObject() must return an object: %s returned', \get_class($this), \gettype($loaderObject))); } if (!\is_callable([$loaderObject, $method])) { diff --git a/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php b/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php index f3ece536e915..1dcdb7c7f970 100644 --- a/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php +++ b/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php @@ -62,12 +62,9 @@ public function getBadResourceStrings() ]; } - /** - * @group legacy - */ public function testExceptionOnNoObjectReturned() { - $this->expectException('LogicException'); + $this->expectException(\TypeError::class); $loader = new TestObjectLoader(); $loader->loaderMap = ['my_service' => 'NOT_AN_OBJECT']; $loader->load('my_service::method'); From 8a460cefef67c8335f59ba299d859e31dc94123e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Baptiste=20Clavi=C3=A9?= Date: Mon, 18 Nov 2019 11:11:23 +0100 Subject: [PATCH 14/23] States that the HttpClient provides a Http Async implementation --- src/Symfony/Component/HttpClient/composer.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Symfony/Component/HttpClient/composer.json b/src/Symfony/Component/HttpClient/composer.json index d0722a70e216..e734b21554df 100644 --- a/src/Symfony/Component/HttpClient/composer.json +++ b/src/Symfony/Component/HttpClient/composer.json @@ -15,6 +15,7 @@ } ], "provide": { + "php-http/async-client-implementation": "*", "php-http/client-implementation": "*", "psr/http-client-implementation": "1.0", "symfony/http-client-implementation": "1.1" From 6194c2a96c6c8c35de8929a95a3f498941cd1760 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 18 Nov 2019 18:27:11 +0100 Subject: [PATCH 15/23] Allow PHP ^7.2.5 --- .appveyor.yml | 4 ++-- .travis.yml | 2 +- composer.json | 2 +- src/Symfony/Bridge/Doctrine/composer.json | 2 +- src/Symfony/Bridge/Monolog/composer.json | 2 +- src/Symfony/Bridge/ProxyManager/composer.json | 2 +- src/Symfony/Bridge/Twig/composer.json | 2 +- src/Symfony/Bundle/DebugBundle/composer.json | 2 +- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- src/Symfony/Bundle/SecurityBundle/composer.json | 2 +- src/Symfony/Bundle/TwigBundle/composer.json | 2 +- src/Symfony/Bundle/WebProfilerBundle/composer.json | 2 +- src/Symfony/Component/Asset/composer.json | 2 +- src/Symfony/Component/BrowserKit/composer.json | 2 +- src/Symfony/Component/Cache/composer.json | 2 +- src/Symfony/Component/Config/composer.json | 2 +- src/Symfony/Component/Console/composer.json | 2 +- src/Symfony/Component/CssSelector/composer.json | 2 +- src/Symfony/Component/DependencyInjection/composer.json | 2 +- src/Symfony/Component/DomCrawler/composer.json | 2 +- src/Symfony/Component/Dotenv/composer.json | 2 +- src/Symfony/Component/ErrorHandler/composer.json | 2 +- src/Symfony/Component/EventDispatcher/composer.json | 2 +- src/Symfony/Component/ExpressionLanguage/composer.json | 2 +- src/Symfony/Component/Filesystem/composer.json | 2 +- src/Symfony/Component/Finder/composer.json | 2 +- src/Symfony/Component/Form/composer.json | 2 +- src/Symfony/Component/HttpClient/composer.json | 2 +- src/Symfony/Component/HttpFoundation/composer.json | 2 +- src/Symfony/Component/HttpKernel/composer.json | 2 +- src/Symfony/Component/Inflector/composer.json | 2 +- src/Symfony/Component/Intl/composer.json | 2 +- src/Symfony/Component/Ldap/composer.json | 2 +- src/Symfony/Component/Lock/composer.json | 2 +- src/Symfony/Component/Mailer/Bridge/Amazon/composer.json | 2 +- src/Symfony/Component/Mailer/Bridge/Google/composer.json | 2 +- src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json | 2 +- src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json | 2 +- src/Symfony/Component/Mailer/Bridge/Postmark/composer.json | 2 +- src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json | 2 +- src/Symfony/Component/Mailer/composer.json | 2 +- src/Symfony/Component/Messenger/composer.json | 2 +- src/Symfony/Component/Mime/composer.json | 2 +- src/Symfony/Component/Notifier/Bridge/Nexmo/composer.json | 2 +- src/Symfony/Component/Notifier/Bridge/Slack/composer.json | 2 +- src/Symfony/Component/Notifier/Bridge/Telegram/composer.json | 2 +- src/Symfony/Component/Notifier/Bridge/Twilio/composer.json | 2 +- src/Symfony/Component/Notifier/composer.json | 2 +- src/Symfony/Component/OptionsResolver/composer.json | 2 +- src/Symfony/Component/Process/composer.json | 2 +- src/Symfony/Component/PropertyAccess/composer.json | 2 +- src/Symfony/Component/PropertyInfo/composer.json | 2 +- src/Symfony/Component/Routing/composer.json | 2 +- src/Symfony/Component/Security/Core/composer.json | 2 +- src/Symfony/Component/Security/Csrf/composer.json | 2 +- src/Symfony/Component/Security/Guard/composer.json | 2 +- src/Symfony/Component/Security/Http/composer.json | 2 +- src/Symfony/Component/Serializer/composer.json | 2 +- src/Symfony/Component/Stopwatch/composer.json | 2 +- src/Symfony/Component/String/composer.json | 2 +- src/Symfony/Component/Templating/composer.json | 2 +- src/Symfony/Component/Translation/composer.json | 2 +- src/Symfony/Component/Validator/composer.json | 2 +- src/Symfony/Component/VarDumper/composer.json | 2 +- src/Symfony/Component/VarExporter/composer.json | 2 +- src/Symfony/Component/WebLink/composer.json | 2 +- src/Symfony/Component/Workflow/composer.json | 2 +- src/Symfony/Component/Yaml/composer.json | 2 +- src/Symfony/Contracts/Cache/composer.json | 2 +- src/Symfony/Contracts/EventDispatcher/composer.json | 2 +- src/Symfony/Contracts/HttpClient/composer.json | 2 +- src/Symfony/Contracts/Service/composer.json | 2 +- src/Symfony/Contracts/Translation/composer.json | 2 +- src/Symfony/Contracts/composer.json | 2 +- 74 files changed, 75 insertions(+), 75 deletions(-) diff --git a/.appveyor.yml b/.appveyor.yml index 5a36911498e0..9d863ffb3557 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -17,8 +17,8 @@ init: install: - mkdir c:\php && cd c:\php - - appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php-7.2.9-Win32-VC15-x86.zip - - 7z x php-7.2.9-Win32-VC15-x86.zip -y >nul + - appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php-7.2.5-Win32-VC15-x86.zip + - 7z x php-7.2.5-Win32-VC15-x86.zip -y >nul - cd ext - appveyor DownloadFile https://github.com/symfony/binary-utils/releases/download/v0.1/php_apcu-5.1.17-7.2-ts-vc15-x86.zip - 7z x php_apcu-5.1.17-7.2-ts-vc15-x86.zip -y >nul diff --git a/.travis.yml b/.travis.yml index 5c03bf9d9d43..4638be740549 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,7 +17,7 @@ addons: env: global: - - MIN_PHP=7.2.9 + - MIN_PHP=7.2.5 - SYMFONY_PROCESS_PHP_TEST_BINARY=~/.phpenv/shims/php - MESSENGER_AMQP_DSN=amqp://localhost/%2f/messages - MESSENGER_REDIS_DSN=redis://127.0.0.1:7006/messages diff --git a/composer.json b/composer.json index e196c9ee8564..7fdb66fac74d 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "ext-xml": "*", "doctrine/event-manager": "~1.0", "doctrine/persistence": "~1.0", diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index cbcafdd695b2..4ae71532dfd6 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "doctrine/event-manager": "~1.0", "doctrine/persistence": "~1.0", "symfony/polyfill-ctype": "~1.8", diff --git a/src/Symfony/Bridge/Monolog/composer.json b/src/Symfony/Bridge/Monolog/composer.json index 737d602dbc49..12680a620faa 100644 --- a/src/Symfony/Bridge/Monolog/composer.json +++ b/src/Symfony/Bridge/Monolog/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "monolog/monolog": "^1.25.1|^2", "symfony/service-contracts": "^1.1|^2", "symfony/http-kernel": "^4.4|^5.0" diff --git a/src/Symfony/Bridge/ProxyManager/composer.json b/src/Symfony/Bridge/ProxyManager/composer.json index 171b63bdb1b0..980d21f4303d 100644 --- a/src/Symfony/Bridge/ProxyManager/composer.json +++ b/src/Symfony/Bridge/ProxyManager/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/dependency-injection": "^5.0", "ocramius/proxy-manager": "~2.1" }, diff --git a/src/Symfony/Bridge/Twig/composer.json b/src/Symfony/Bridge/Twig/composer.json index 8b476dc3367c..3cff437eb58e 100644 --- a/src/Symfony/Bridge/Twig/composer.json +++ b/src/Symfony/Bridge/Twig/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/translation-contracts": "^1.1|^2", "twig/twig": "^2.10|^3.0" }, diff --git a/src/Symfony/Bundle/DebugBundle/composer.json b/src/Symfony/Bundle/DebugBundle/composer.json index 1805712b855f..019384944c55 100644 --- a/src/Symfony/Bundle/DebugBundle/composer.json +++ b/src/Symfony/Bundle/DebugBundle/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "ext-xml": "*", "symfony/http-kernel": "^4.4|^5.0", "symfony/twig-bridge": "^4.4|^5.0", diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 3f928105f9fc..6a90421361d7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "ext-xml": "*", "symfony/cache": "^4.4|^5.0", "symfony/config": "^5.0", diff --git a/src/Symfony/Bundle/SecurityBundle/composer.json b/src/Symfony/Bundle/SecurityBundle/composer.json index 75b97dc13fab..18c86174ba97 100644 --- a/src/Symfony/Bundle/SecurityBundle/composer.json +++ b/src/Symfony/Bundle/SecurityBundle/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "ext-xml": "*", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", diff --git a/src/Symfony/Bundle/TwigBundle/composer.json b/src/Symfony/Bundle/TwigBundle/composer.json index 333f134c66ad..72fff5997e4a 100644 --- a/src/Symfony/Bundle/TwigBundle/composer.json +++ b/src/Symfony/Bundle/TwigBundle/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/config": "^4.4|^5.0", "symfony/twig-bridge": "^5.0", "symfony/http-foundation": "^4.4|^5.0", diff --git a/src/Symfony/Bundle/WebProfilerBundle/composer.json b/src/Symfony/Bundle/WebProfilerBundle/composer.json index ec1946922c00..2be8f7d32e87 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/composer.json +++ b/src/Symfony/Bundle/WebProfilerBundle/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/config": "^4.4|^5.0", "symfony/framework-bundle": "^4.4|^5.0", "symfony/http-kernel": "^4.4|^5.0", diff --git a/src/Symfony/Component/Asset/composer.json b/src/Symfony/Component/Asset/composer.json index 3d1c89fcc23b..4d6ca7743eb6 100644 --- a/src/Symfony/Component/Asset/composer.json +++ b/src/Symfony/Component/Asset/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "suggest": { "symfony/http-foundation": "" diff --git a/src/Symfony/Component/BrowserKit/composer.json b/src/Symfony/Component/BrowserKit/composer.json index 9326efd19c1c..fc8390307e96 100644 --- a/src/Symfony/Component/BrowserKit/composer.json +++ b/src/Symfony/Component/BrowserKit/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/dom-crawler": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Cache/composer.json b/src/Symfony/Component/Cache/composer.json index 904fb1856978..6e23abc34275 100644 --- a/src/Symfony/Component/Cache/composer.json +++ b/src/Symfony/Component/Cache/composer.json @@ -21,7 +21,7 @@ "symfony/cache-implementation": "1.0" }, "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/cache": "~1.0", "psr/log": "~1.0", "symfony/cache-contracts": "^1.1.7|^2", diff --git a/src/Symfony/Component/Config/composer.json b/src/Symfony/Component/Config/composer.json index 93c744d811eb..cd31eb95e976 100644 --- a/src/Symfony/Component/Config/composer.json +++ b/src/Symfony/Component/Config/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/filesystem": "^4.4|^5.0", "symfony/polyfill-ctype": "~1.8" }, diff --git a/src/Symfony/Component/Console/composer.json b/src/Symfony/Component/Console/composer.json index b06f713edab7..8948071d5827 100644 --- a/src/Symfony/Component/Console/composer.json +++ b/src/Symfony/Component/Console/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", "symfony/service-contracts": "^1.1|^2" diff --git a/src/Symfony/Component/CssSelector/composer.json b/src/Symfony/Component/CssSelector/composer.json index 869769000388..5aa093116ce5 100644 --- a/src/Symfony/Component/CssSelector/composer.json +++ b/src/Symfony/Component/CssSelector/composer.json @@ -20,7 +20,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "autoload": { "psr-4": { "Symfony\\Component\\CssSelector\\": "" }, diff --git a/src/Symfony/Component/DependencyInjection/composer.json b/src/Symfony/Component/DependencyInjection/composer.json index b7fffed9b071..25e65e3b585c 100644 --- a/src/Symfony/Component/DependencyInjection/composer.json +++ b/src/Symfony/Component/DependencyInjection/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/container": "^1.0", "symfony/service-contracts": "^1.1.6|^2" }, diff --git a/src/Symfony/Component/DomCrawler/composer.json b/src/Symfony/Component/DomCrawler/composer.json index 866fa1f3da25..d89ea26d6bdb 100644 --- a/src/Symfony/Component/DomCrawler/composer.json +++ b/src/Symfony/Component/DomCrawler/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0" }, diff --git a/src/Symfony/Component/Dotenv/composer.json b/src/Symfony/Component/Dotenv/composer.json index 6ca62b8d39d5..86731371f411 100644 --- a/src/Symfony/Component/Dotenv/composer.json +++ b/src/Symfony/Component/Dotenv/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "require-dev": { "symfony/process": "^4.4|^5.0" diff --git a/src/Symfony/Component/ErrorHandler/composer.json b/src/Symfony/Component/ErrorHandler/composer.json index e29515a0f094..3ca2724ee470 100644 --- a/src/Symfony/Component/ErrorHandler/composer.json +++ b/src/Symfony/Component/ErrorHandler/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/log": "^1.0", "symfony/var-dumper": "^4.4|^5.0" }, diff --git a/src/Symfony/Component/EventDispatcher/composer.json b/src/Symfony/Component/EventDispatcher/composer.json index 5e8108ae78e0..e867a7cd160b 100644 --- a/src/Symfony/Component/EventDispatcher/composer.json +++ b/src/Symfony/Component/EventDispatcher/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/event-dispatcher-contracts": "^2" }, "require-dev": { diff --git a/src/Symfony/Component/ExpressionLanguage/composer.json b/src/Symfony/Component/ExpressionLanguage/composer.json index a16e5ebcd5d0..e2cb34d8f6a9 100644 --- a/src/Symfony/Component/ExpressionLanguage/composer.json +++ b/src/Symfony/Component/ExpressionLanguage/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/cache": "^4.4|^5.0", "symfony/service-contracts": "^1.1|^2" }, diff --git a/src/Symfony/Component/Filesystem/composer.json b/src/Symfony/Component/Filesystem/composer.json index 0f0117f3f856..3eb10704f15c 100644 --- a/src/Symfony/Component/Filesystem/composer.json +++ b/src/Symfony/Component/Filesystem/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8" }, "autoload": { diff --git a/src/Symfony/Component/Finder/composer.json b/src/Symfony/Component/Finder/composer.json index 0ffe3f4aef24..65a19880fc4a 100644 --- a/src/Symfony/Component/Finder/composer.json +++ b/src/Symfony/Component/Finder/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" }, diff --git a/src/Symfony/Component/Form/composer.json b/src/Symfony/Component/Form/composer.json index 70b1b22b8817..c7c9287f982d 100644 --- a/src/Symfony/Component/Form/composer.json +++ b/src/Symfony/Component/Form/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/event-dispatcher": "^4.4|^5.0", "symfony/intl": "^4.4|^5.0", "symfony/options-resolver": "^5.0", diff --git a/src/Symfony/Component/HttpClient/composer.json b/src/Symfony/Component/HttpClient/composer.json index 252c44444fdc..b8e68813b383 100644 --- a/src/Symfony/Component/HttpClient/composer.json +++ b/src/Symfony/Component/HttpClient/composer.json @@ -20,7 +20,7 @@ "symfony/http-client-implementation": "1.1" }, "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/log": "^1.0", "symfony/http-client-contracts": "^1.1.8|^2", "symfony/polyfill-php73": "^1.11" diff --git a/src/Symfony/Component/HttpFoundation/composer.json b/src/Symfony/Component/HttpFoundation/composer.json index 5311c77bfbf6..fcec68c3613d 100644 --- a/src/Symfony/Component/HttpFoundation/composer.json +++ b/src/Symfony/Component/HttpFoundation/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mime": "^4.4|^5.0", "symfony/polyfill-mbstring": "~1.1" }, diff --git a/src/Symfony/Component/HttpKernel/composer.json b/src/Symfony/Component/HttpKernel/composer.json index 3d5681a4d987..73621a5a7b87 100644 --- a/src/Symfony/Component/HttpKernel/composer.json +++ b/src/Symfony/Component/HttpKernel/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/error-handler": "^4.4|^5.0", "symfony/event-dispatcher": "^5.0", "symfony/http-foundation": "^4.4|^5.0", diff --git a/src/Symfony/Component/Inflector/composer.json b/src/Symfony/Component/Inflector/composer.json index 726500d1b6b8..f282c05485d0 100644 --- a/src/Symfony/Component/Inflector/composer.json +++ b/src/Symfony/Component/Inflector/composer.json @@ -23,7 +23,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8" }, "autoload": { diff --git a/src/Symfony/Component/Intl/composer.json b/src/Symfony/Component/Intl/composer.json index daf9b2783c24..1d1043185c64 100644 --- a/src/Symfony/Component/Intl/composer.json +++ b/src/Symfony/Component/Intl/composer.json @@ -24,7 +24,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-intl-icu": "~1.0" }, "require-dev": { diff --git a/src/Symfony/Component/Ldap/composer.json b/src/Symfony/Component/Ldap/composer.json index fcdecf712f0e..036b32547ebf 100644 --- a/src/Symfony/Component/Ldap/composer.json +++ b/src/Symfony/Component/Ldap/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/options-resolver": "^4.4|^5.0", "ext-ldap": "*" }, diff --git a/src/Symfony/Component/Lock/composer.json b/src/Symfony/Component/Lock/composer.json index 74007a8f1012..6b6a495cf564 100644 --- a/src/Symfony/Component/Lock/composer.json +++ b/src/Symfony/Component/Lock/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/log": "~1.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json b/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json index 66d246c5931a..fbdb001d9d1a 100644 --- a/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Amazon/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mailer": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/Google/composer.json b/src/Symfony/Component/Mailer/Bridge/Google/composer.json index 42629567d915..a0f54162c19c 100644 --- a/src/Symfony/Component/Mailer/Bridge/Google/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Google/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mailer": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json b/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json index bf985cf259e0..ef03c16fb66d 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Mailchimp/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mailer": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json b/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json index 3bc2a609d375..1ac5c3a1e287 100644 --- a/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Mailgun/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mailer": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json b/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json index c9ff019dc41c..30fe2b0fcd04 100644 --- a/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Postmark/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mailer": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json b/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json index bc0ee5d100d3..bfb9677a348f 100644 --- a/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json +++ b/src/Symfony/Component/Mailer/Bridge/Sendgrid/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/mailer": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mailer/composer.json b/src/Symfony/Component/Mailer/composer.json index 72321722e742..4abb72e8e799 100644 --- a/src/Symfony/Component/Mailer/composer.json +++ b/src/Symfony/Component/Mailer/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "egulias/email-validator": "^2.1.10", "psr/log": "~1.0", "symfony/event-dispatcher": "^4.4|^5.0", diff --git a/src/Symfony/Component/Messenger/composer.json b/src/Symfony/Component/Messenger/composer.json index 8f10f0b286f8..bb15ab51d587 100644 --- a/src/Symfony/Component/Messenger/composer.json +++ b/src/Symfony/Component/Messenger/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/log": "~1.0" }, "require-dev": { diff --git a/src/Symfony/Component/Mime/composer.json b/src/Symfony/Component/Mime/composer.json index 1dda3a7425a4..c3f262610be7 100644 --- a/src/Symfony/Component/Mime/composer.json +++ b/src/Symfony/Component/Mime/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0" }, diff --git a/src/Symfony/Component/Notifier/Bridge/Nexmo/composer.json b/src/Symfony/Component/Notifier/Bridge/Nexmo/composer.json index 2cf949c76d09..cfcc1bcf1805 100644 --- a/src/Symfony/Component/Notifier/Bridge/Nexmo/composer.json +++ b/src/Symfony/Component/Notifier/Bridge/Nexmo/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/http-client": "^4.3|^5.0", "symfony/notifier": "~5.0.0" }, diff --git a/src/Symfony/Component/Notifier/Bridge/Slack/composer.json b/src/Symfony/Component/Notifier/Bridge/Slack/composer.json index 9f541c0c899b..feb1e5f4edbb 100644 --- a/src/Symfony/Component/Notifier/Bridge/Slack/composer.json +++ b/src/Symfony/Component/Notifier/Bridge/Slack/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/http-client": "^4.3|^5.0", "symfony/notifier": "~5.0.0" }, diff --git a/src/Symfony/Component/Notifier/Bridge/Telegram/composer.json b/src/Symfony/Component/Notifier/Bridge/Telegram/composer.json index d041b3f045f4..a562f74dce54 100644 --- a/src/Symfony/Component/Notifier/Bridge/Telegram/composer.json +++ b/src/Symfony/Component/Notifier/Bridge/Telegram/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/http-client": "^4.3|^5.0", "symfony/notifier": "~5.0.0" }, diff --git a/src/Symfony/Component/Notifier/Bridge/Twilio/composer.json b/src/Symfony/Component/Notifier/Bridge/Twilio/composer.json index e23483a28e16..49a1cf62e1fb 100644 --- a/src/Symfony/Component/Notifier/Bridge/Twilio/composer.json +++ b/src/Symfony/Component/Notifier/Bridge/Twilio/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/http-client": "^4.3|^5.0", "symfony/notifier": "~5.0.0" }, diff --git a/src/Symfony/Component/Notifier/composer.json b/src/Symfony/Component/Notifier/composer.json index 874a94769b87..fbf8ae146340 100644 --- a/src/Symfony/Component/Notifier/composer.json +++ b/src/Symfony/Component/Notifier/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "conflict": { "symfony/http-kernel": "<4.4" diff --git a/src/Symfony/Component/OptionsResolver/composer.json b/src/Symfony/Component/OptionsResolver/composer.json index ce5df16eb164..10cfef44aaca 100644 --- a/src/Symfony/Component/OptionsResolver/composer.json +++ b/src/Symfony/Component/OptionsResolver/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "autoload": { "psr-4": { "Symfony\\Component\\OptionsResolver\\": "" }, diff --git a/src/Symfony/Component/Process/composer.json b/src/Symfony/Component/Process/composer.json index cfccd2832d60..2a6d3a94b285 100644 --- a/src/Symfony/Component/Process/composer.json +++ b/src/Symfony/Component/Process/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" }, diff --git a/src/Symfony/Component/PropertyAccess/composer.json b/src/Symfony/Component/PropertyAccess/composer.json index e6ee34f5b9c2..3c98aac851b8 100644 --- a/src/Symfony/Component/PropertyAccess/composer.json +++ b/src/Symfony/Component/PropertyAccess/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/inflector": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/PropertyInfo/composer.json b/src/Symfony/Component/PropertyInfo/composer.json index 9ffbc9bf68b7..879289dcb981 100644 --- a/src/Symfony/Component/PropertyInfo/composer.json +++ b/src/Symfony/Component/PropertyInfo/composer.json @@ -23,7 +23,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/inflector": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Routing/composer.json b/src/Symfony/Component/Routing/composer.json index 9cb239e4a505..1e039cbef4b5 100644 --- a/src/Symfony/Component/Routing/composer.json +++ b/src/Symfony/Component/Routing/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "require-dev": { "symfony/config": "^5.0", diff --git a/src/Symfony/Component/Security/Core/composer.json b/src/Symfony/Component/Security/Core/composer.json index 35cb9efc462b..18602ca6e369 100644 --- a/src/Symfony/Component/Security/Core/composer.json +++ b/src/Symfony/Component/Security/Core/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/event-dispatcher-contracts": "^1.1|^2", "symfony/service-contracts": "^1.1.6|^2" }, diff --git a/src/Symfony/Component/Security/Csrf/composer.json b/src/Symfony/Component/Security/Csrf/composer.json index 807c65a87ee0..098091c62b56 100644 --- a/src/Symfony/Component/Security/Csrf/composer.json +++ b/src/Symfony/Component/Security/Csrf/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/security-core": "^4.4|^5.0" }, "require-dev": { diff --git a/src/Symfony/Component/Security/Guard/composer.json b/src/Symfony/Component/Security/Guard/composer.json index b36db0dbd32a..63f0330f0762 100644 --- a/src/Symfony/Component/Security/Guard/composer.json +++ b/src/Symfony/Component/Security/Guard/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/security-core": "^5.0", "symfony/security-http": "^4.4|^5.0" }, diff --git a/src/Symfony/Component/Security/Http/composer.json b/src/Symfony/Component/Security/Http/composer.json index 9cb56e9d1821..5e734157254c 100644 --- a/src/Symfony/Component/Security/Http/composer.json +++ b/src/Symfony/Component/Security/Http/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/security-core": "^4.4|^5.0", "symfony/http-foundation": "^4.4|^5.0", "symfony/http-kernel": "^4.4|^5.0", diff --git a/src/Symfony/Component/Serializer/composer.json b/src/Symfony/Component/Serializer/composer.json index f6783bbaf243..bf833b53ca42 100644 --- a/src/Symfony/Component/Serializer/composer.json +++ b/src/Symfony/Component/Serializer/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8" }, "require-dev": { diff --git a/src/Symfony/Component/Stopwatch/composer.json b/src/Symfony/Component/Stopwatch/composer.json index dcd6ad0478f2..a79ab52b6472 100644 --- a/src/Symfony/Component/Stopwatch/composer.json +++ b/src/Symfony/Component/Stopwatch/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/service-contracts": "^1.0|^2" }, "autoload": { diff --git a/src/Symfony/Component/String/composer.json b/src/Symfony/Component/String/composer.json index a7fc421048c6..b4813f3aa714 100644 --- a/src/Symfony/Component/String/composer.json +++ b/src/Symfony/Component/String/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0", diff --git a/src/Symfony/Component/Templating/composer.json b/src/Symfony/Component/Templating/composer.json index 3847be666bae..7018d31b1221 100644 --- a/src/Symfony/Component/Templating/composer.json +++ b/src/Symfony/Component/Templating/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8" }, "require-dev": { diff --git a/src/Symfony/Component/Translation/composer.json b/src/Symfony/Component/Translation/composer.json index 2eafa561caf7..d38c33a29df2 100644 --- a/src/Symfony/Component/Translation/composer.json +++ b/src/Symfony/Component/Translation/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^2" }, diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 6d88f90ab574..f0c3a83c447f 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.0", "symfony/translation-contracts": "^1.1|^2" diff --git a/src/Symfony/Component/VarDumper/composer.json b/src/Symfony/Component/VarDumper/composer.json index fbf2039d7870..c7e668c120ff 100644 --- a/src/Symfony/Component/VarDumper/composer.json +++ b/src/Symfony/Component/VarDumper/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { diff --git a/src/Symfony/Component/VarExporter/composer.json b/src/Symfony/Component/VarExporter/composer.json index 480a0155891b..6ccfc63fecac 100644 --- a/src/Symfony/Component/VarExporter/composer.json +++ b/src/Symfony/Component/VarExporter/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "require-dev": { "symfony/var-dumper": "^4.4|^5.0" diff --git a/src/Symfony/Component/WebLink/composer.json b/src/Symfony/Component/WebLink/composer.json index 9046f6bf0882..e89430ce2858 100644 --- a/src/Symfony/Component/WebLink/composer.json +++ b/src/Symfony/Component/WebLink/composer.json @@ -19,7 +19,7 @@ "psr/link-implementation": "1.0" }, "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/link": "^1.0" }, "suggest": { diff --git a/src/Symfony/Component/Workflow/composer.json b/src/Symfony/Component/Workflow/composer.json index 124361a0c719..d365da0865e9 100644 --- a/src/Symfony/Component/Workflow/composer.json +++ b/src/Symfony/Component/Workflow/composer.json @@ -20,7 +20,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "require-dev": { "psr/log": "~1.0", diff --git a/src/Symfony/Component/Yaml/composer.json b/src/Symfony/Component/Yaml/composer.json index 6a32ba97a215..598833b87fc1 100644 --- a/src/Symfony/Component/Yaml/composer.json +++ b/src/Symfony/Component/Yaml/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "symfony/polyfill-ctype": "~1.8" }, "require-dev": { diff --git a/src/Symfony/Contracts/Cache/composer.json b/src/Symfony/Contracts/Cache/composer.json index ec4d1e608742..c9cf8b538f5b 100644 --- a/src/Symfony/Contracts/Cache/composer.json +++ b/src/Symfony/Contracts/Cache/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/cache": "^1.0" }, "suggest": { diff --git a/src/Symfony/Contracts/EventDispatcher/composer.json b/src/Symfony/Contracts/EventDispatcher/composer.json index 560a8ad32392..f7ba8f119e1c 100644 --- a/src/Symfony/Contracts/EventDispatcher/composer.json +++ b/src/Symfony/Contracts/EventDispatcher/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/event-dispatcher": "^1" }, "suggest": { diff --git a/src/Symfony/Contracts/HttpClient/composer.json b/src/Symfony/Contracts/HttpClient/composer.json index 49440a1941cf..e91f2e52cd2d 100644 --- a/src/Symfony/Contracts/HttpClient/composer.json +++ b/src/Symfony/Contracts/HttpClient/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "suggest": { "symfony/http-client-implementation": "" diff --git a/src/Symfony/Contracts/Service/composer.json b/src/Symfony/Contracts/Service/composer.json index 31aa164f902c..cbd491b59591 100644 --- a/src/Symfony/Contracts/Service/composer.json +++ b/src/Symfony/Contracts/Service/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/container": "^1.0" }, "suggest": { diff --git a/src/Symfony/Contracts/Translation/composer.json b/src/Symfony/Contracts/Translation/composer.json index cc78b1ac94c8..d185b3a4394a 100644 --- a/src/Symfony/Contracts/Translation/composer.json +++ b/src/Symfony/Contracts/Translation/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9" + "php": "^7.2.5" }, "suggest": { "symfony/translation-implementation": "" diff --git a/src/Symfony/Contracts/composer.json b/src/Symfony/Contracts/composer.json index b3afab60747f..6eccaa85989b 100644 --- a/src/Symfony/Contracts/composer.json +++ b/src/Symfony/Contracts/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": "^7.2.9", + "php": "^7.2.5", "psr/cache": "^1.0", "psr/container": "^1.0", "psr/event-dispatcher": "^1.0" From d811b0e9b50bb628e3e30429b6a4c7a931f0d30b Mon Sep 17 00:00:00 2001 From: Christian Flothmann Date: Tue, 19 Nov 2019 08:54:33 +0100 Subject: [PATCH 16/23] allow button names to start with uppercase letter --- UPGRADE-4.3.md | 2 +- UPGRADE-5.0.md | 2 +- src/Symfony/Component/Form/ButtonBuilder.php | 2 +- src/Symfony/Component/Form/CHANGELOG.md | 2 +- src/Symfony/Component/Form/Tests/ButtonBuilderTest.php | 8 -------- 5 files changed, 4 insertions(+), 12 deletions(-) diff --git a/UPGRADE-4.3.md b/UPGRADE-4.3.md index 86155031fa29..e3a4ac469d05 100644 --- a/UPGRADE-4.3.md +++ b/UPGRADE-4.3.md @@ -96,7 +96,7 @@ Form ---- * Using the `format` option of `DateType` and `DateTimeType` when the `html5` option is enabled is deprecated. - * Using names for buttons that do not start with a lowercase letter, a digit, or an underscore is deprecated and will lead to an + * Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated and will lead to an exception in 5.0. * Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons is deprecated and will lead to an exception in 5.0. diff --git a/UPGRADE-5.0.md b/UPGRADE-5.0.md index 455cd0d62ad0..302cea6dec96 100644 --- a/UPGRADE-5.0.md +++ b/UPGRADE-5.0.md @@ -110,7 +110,7 @@ Form ---- * Removed support for using the `format` option of `DateType` and `DateTimeType` when the `html5` option is enabled. - * Using names for buttons that do not start with a lowercase letter, a digit, or an underscore leads to an exception. + * Using names for buttons that do not start with a letter, a digit, or an underscore leads to an exception. * Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons leads to an exception. * Using the `date_format`, `date_widget`, and `time_widget` options of the `DateTimeType` when the `widget` option is diff --git a/src/Symfony/Component/Form/ButtonBuilder.php b/src/Symfony/Component/Form/ButtonBuilder.php index bf8e147838de..ca6bf78dc9cb 100644 --- a/src/Symfony/Component/Form/ButtonBuilder.php +++ b/src/Symfony/Component/Form/ButtonBuilder.php @@ -61,7 +61,7 @@ public function __construct(?string $name, array $options = []) $this->name = $name; $this->options = $options; - if (preg_match('/^([^a-z0-9_].*)?(.*[^a-zA-Z0-9_\-:].*)?$/D', $name, $matches)) { + if (preg_match('/^([^a-zA-Z0-9_].*)?(.*[^a-zA-Z0-9_\-:].*)?$/D', $name, $matches)) { if (isset($matches[1])) { @trigger_error(sprintf('Using names for buttons that do not start with a lowercase letter, a digit, or an underscore is deprecated since Symfony 4.3 and will throw an exception in 5.0 ("%s" given).', $name), E_USER_DEPRECATED); } diff --git a/src/Symfony/Component/Form/CHANGELOG.md b/src/Symfony/Component/Form/CHANGELOG.md index cf7b8cd8cc2d..e41c46e907a8 100644 --- a/src/Symfony/Component/Form/CHANGELOG.md +++ b/src/Symfony/Component/Form/CHANGELOG.md @@ -6,7 +6,7 @@ CHANGELOG * added a `symbol` option to the `PercentType` that allows to disable or customize the output of the percent character * Using the `format` option of `DateType` and `DateTimeType` when the `html5` option is enabled is deprecated. - * Using names for buttons that do not start with a lowercase letter, a digit, or an underscore is deprecated and will lead to an + * Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated and will lead to an exception in 5.0. * Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons is deprecated and will lead to an exception in 5.0. diff --git a/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php b/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php index 966b2927e9ad..7bd78896d194 100644 --- a/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php +++ b/src/Symfony/Component/Form/Tests/ButtonBuilderTest.php @@ -47,14 +47,6 @@ public function testNameContainingIllegalCharacters() $this->assertInstanceOf('\Symfony\Component\Form\ButtonBuilder', new ButtonBuilder('button[]')); } - /** - * @group legacy - */ - public function testNameStartingWithIllegalCharacters() - { - $this->assertInstanceOf('\Symfony\Component\Form\ButtonBuilder', new ButtonBuilder('Button')); - } - public function getInvalidNames() { return [ From 60b0dae17434ed294c95b330567c3aba2bda5830 Mon Sep 17 00:00:00 2001 From: Soner Sayakci Date: Tue, 19 Nov 2019 11:37:15 +0100 Subject: [PATCH 17/23] [DependencyInjection] Fix dumping multiple deprecated aliases --- .../DependencyInjection/Dumper/PhpDumper.php | 2 +- .../Tests/Dumper/PhpDumperTest.php | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php index 48267b0d033d..5e2f7d2dd437 100644 --- a/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php +++ b/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php @@ -1226,7 +1226,7 @@ private function addDeprecatedAliases(): string $methodNameAlias = $this->generateMethodName($alias); $idExported = $this->export($id); $messageExported = $this->export($definition->getDeprecationMessage($alias)); - $code = <<docStar} * Gets the $public '$alias' alias. diff --git a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php index b78fcb32e436..d0fb5ab8c6aa 100644 --- a/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php +++ b/src/Symfony/Component/DependencyInjection/Tests/Dumper/PhpDumperTest.php @@ -1283,6 +1283,30 @@ public function testWither() $wither = $container->get('wither'); $this->assertInstanceOf(Foo::class, $wither->foo); } + + /** + * @group legacy + * @expectedDeprecation The "deprecated1" service alias is deprecated. You should stop using it, as it will be removed in the future. + * @expectedDeprecation The "deprecated2" service alias is deprecated. You should stop using it, as it will be removed in the future. + */ + public function testMultipleDeprecatedAliasesWorking() + { + $container = new ContainerBuilder(); + $container->setDefinition('bar', new Definition('stdClass'))->setPublic(true); + $container->setAlias('deprecated1', 'bar')->setPublic(true)->setDeprecated('%alias_id% is deprecated'); + $container->setAlias('deprecated2', 'bar')->setPublic(true)->setDeprecated('%alias_id% is deprecated'); + $container->compile(); + + $dumper = new PhpDumper($container); + $dump = $dumper->dump(['class' => $class = __FUNCTION__]); + + eval('?>'.$dump); + $container = new $class(); + + $this->assertInstanceOf(\stdClass::class, $container->get('bar')); + $this->assertInstanceOf(\stdClass::class, $container->get('deprecated1')); + $this->assertInstanceOf(\stdClass::class, $container->get('deprecated2')); + } } class Rot13EnvVarProcessor implements EnvVarProcessorInterface From 8d84ac34a5c1f650c337924e260dcf397f816111 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 18 Nov 2019 08:44:14 +0100 Subject: [PATCH 18/23] Remove wrong @group legacy annotations --- .../Tests/DependencyInjection/ConfigurationTest.php | 2 -- .../Tests/DependencyInjection/WebProfilerExtensionTest.php | 2 -- src/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php | 3 --- src/Symfony/Component/Routing/Loader/ObjectLoader.php | 2 +- .../Component/Routing/Tests/Loader/ObjectLoaderTest.php | 5 +---- .../Provider/DaoAuthenticationProviderTest.php | 3 --- .../Provider/UserAuthenticationProviderTest.php | 3 --- .../Security/Http/Tests/Firewall/ExceptionListenerTest.php | 3 --- .../Security/Http/Tests/Firewall/LogoutListenerTest.php | 3 --- .../Http/Tests/RememberMe/AbstractRememberMeServicesTest.php | 3 --- src/Symfony/Component/Workflow/Tests/WorkflowTest.php | 3 --- 11 files changed, 2 insertions(+), 30 deletions(-) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/ConfigurationTest.php b/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/ConfigurationTest.php index 06aa85aee360..a0bc7f43c066 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/ConfigurationTest.php +++ b/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -60,8 +60,6 @@ public function getDebugModes() } /** - * @group legacy - * * @dataProvider getInterceptRedirectsConfiguration */ public function testConfigTreeUsingInterceptRedirects(bool $interceptRedirects, array $expectedResult) diff --git a/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php b/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php index b94ef8045b68..6c6fc7f0b470 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php +++ b/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php @@ -142,8 +142,6 @@ public function getToolbarConfig() } /** - * @group legacy - * * @dataProvider getInterceptRedirectsToolbarConfig */ public function testToolbarConfigUsingInterceptRedirects( diff --git a/src/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php b/src/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php index 46dcee216267..be03734dc426 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Bundle/BundleTest.php @@ -28,9 +28,6 @@ public function testGetContainerExtension() ); } - /** - * @group legacy - */ public function testGetContainerExtensionWithInvalidClass() { $this->expectException('LogicException'); diff --git a/src/Symfony/Component/Routing/Loader/ObjectLoader.php b/src/Symfony/Component/Routing/Loader/ObjectLoader.php index e7d9efa1eb32..c391ad6648aa 100644 --- a/src/Symfony/Component/Routing/Loader/ObjectLoader.php +++ b/src/Symfony/Component/Routing/Loader/ObjectLoader.php @@ -52,7 +52,7 @@ public function load($resource, $type = null) $loaderObject = $this->getObject($parts[0]); if (!\is_object($loaderObject)) { - throw new \LogicException(sprintf('%s:getObject() must return an object: %s returned', \get_class($this), \gettype($loaderObject))); + throw new \TypeError(sprintf('%s:getObject() must return an object: %s returned', \get_class($this), \gettype($loaderObject))); } if (!\is_callable([$loaderObject, $method])) { diff --git a/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php b/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php index cec1fa422cb2..2a7f21bd16c0 100644 --- a/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php +++ b/src/Symfony/Component/Routing/Tests/Loader/ObjectLoaderTest.php @@ -62,12 +62,9 @@ public function getBadResourceStrings() ]; } - /** - * @group legacy - */ public function testExceptionOnNoObjectReturned() { - $this->expectException('LogicException'); + $this->expectException(\TypeError::class); $loader = new TestObjectLoader(); $loader->loaderMap = ['my_service' => 'NOT_AN_OBJECT']; $loader->load('my_service::method'); diff --git a/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/DaoAuthenticationProviderTest.php b/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/DaoAuthenticationProviderTest.php index 342db15095bd..0981b13c8f01 100644 --- a/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/DaoAuthenticationProviderTest.php +++ b/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/DaoAuthenticationProviderTest.php @@ -22,9 +22,6 @@ class DaoAuthenticationProviderTest extends TestCase { - /** - * @group legacy - */ public function testRetrieveUserWhenProviderDoesNotReturnAnUserInterface() { $this->expectException('Symfony\Component\Security\Core\Exception\AuthenticationServiceException'); diff --git a/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/UserAuthenticationProviderTest.php b/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/UserAuthenticationProviderTest.php index 5a42b3290f6d..8ec92d5014da 100644 --- a/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/UserAuthenticationProviderTest.php +++ b/src/Symfony/Component/Security/Core/Tests/Authentication/Provider/UserAuthenticationProviderTest.php @@ -62,9 +62,6 @@ public function testAuthenticateWhenUsernameIsNotFoundAndHideIsTrue() $provider->authenticate($this->getSupportedToken()); } - /** - * @group legacy - */ public function testAuthenticateWhenProviderDoesNotReturnAnUserInterface() { $this->expectException('Symfony\Component\Security\Core\Exception\AuthenticationServiceException'); diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php index fb1db914286f..2715c9404d5b 100644 --- a/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/Firewall/ExceptionListenerTest.php @@ -72,9 +72,6 @@ public function getAuthenticationExceptionProvider() ]; } - /** - * @group legacy - */ public function testExceptionWhenEntryPointReturnsBadValue() { $event = $this->createEvent(new AuthenticationException()); diff --git a/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php b/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php index 5eed09392802..3d51a26196a7 100644 --- a/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php +++ b/src/Symfony/Component/Security/Http/Tests/Firewall/LogoutListenerTest.php @@ -123,9 +123,6 @@ public function testHandleMatchedPathWithoutSuccessHandlerAndCsrfValidation() $listener($event); } - /** - * @group legacy - */ public function testSuccessHandlerReturnsNonResponse() { $this->expectException('RuntimeException'); diff --git a/src/Symfony/Component/Security/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php b/src/Symfony/Component/Security/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php index 8dc2042f12c0..c476e65403c2 100644 --- a/src/Symfony/Component/Security/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php +++ b/src/Symfony/Component/Security/Http/Tests/RememberMe/AbstractRememberMeServicesTest.php @@ -39,9 +39,6 @@ public function testAutoLoginReturnsNullWhenNoCookie() $this->assertNull($service->autoLogin(new Request())); } - /** - * @group legacy - */ public function testAutoLoginThrowsExceptionWhenImplementationDoesNotReturnUserInterface() { $this->expectException('RuntimeException'); diff --git a/src/Symfony/Component/Workflow/Tests/WorkflowTest.php b/src/Symfony/Component/Workflow/Tests/WorkflowTest.php index 84d02a970d5d..54b26421f745 100644 --- a/src/Symfony/Component/Workflow/Tests/WorkflowTest.php +++ b/src/Symfony/Component/Workflow/Tests/WorkflowTest.php @@ -20,9 +20,6 @@ class WorkflowTest extends TestCase { use WorkflowBuilderTrait; - /** - * @group legacy - */ public function testGetMarkingWithInvalidStoreReturn() { $this->expectException('Symfony\Component\Workflow\Exception\LogicException'); From d15f77f33e5bf9cdbd91d2325c30d5327b28901f Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 20 Nov 2019 13:50:43 +0100 Subject: [PATCH 19/23] [Form] group constraints when calling the validator --- .../Validator/Constraints/FormValidator.php | 8 +++++++- .../Validator/Constraints/FormValidatorTest.php | 12 +++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php b/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php index 01488217c8ea..747273f88f07 100644 --- a/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php +++ b/src/Symfony/Component/Form/Extension/Validator/Constraints/FormValidator.php @@ -76,6 +76,8 @@ public function validate($form, Constraint $formConstraint) } } } else { + $groupedConstraints = []; + foreach ($constraints as $constraint) { // For the "Valid" constraint, validate the data in all groups if ($constraint instanceof Valid) { @@ -88,7 +90,7 @@ public function validate($form, Constraint $formConstraint) // matching group foreach ($groups as $group) { if (\in_array($group, $constraint->groups)) { - $validator->atPath('data')->validate($form->getData(), $constraint, $group); + $groupedConstraints[$group][] = $constraint; // Prevent duplicate validation if (!$constraint instanceof Composite) { @@ -97,6 +99,10 @@ public function validate($form, Constraint $formConstraint) } } } + + foreach ($groupedConstraints as $group => $constraint) { + $validator->atPath('data')->validate($form->getData(), $constraint, $group); + } } } elseif (!$form->isSynchronized()) { $childrenSynchronized = true; diff --git a/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php b/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php index 36965c114db7..46733786a86c 100644 --- a/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php +++ b/src/Symfony/Component/Form/Tests/Extension/Validator/Constraints/FormValidatorTest.php @@ -26,6 +26,7 @@ use Symfony\Component\Translation\IdentityTranslator; use Symfony\Component\Validator\Constraints\Collection; use Symfony\Component\Validator\Constraints\GroupSequence; +use Symfony\Component\Validator\Constraints\Length; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Constraints\NotNull; use Symfony\Component\Validator\Constraints\Valid; @@ -77,10 +78,11 @@ public function testValidateConstraints() $object = new \stdClass(); $constraint1 = new NotNull(['groups' => ['group1', 'group2']]); $constraint2 = new NotBlank(['groups' => 'group2']); + $constraint3 = new Length(['groups' => 'group2', 'min' => 3]); $options = [ 'validation_groups' => ['group1', 'group2'], - 'constraints' => [$constraint1, $constraint2], + 'constraints' => [$constraint1, $constraint2, $constraint3], ]; $form = $this->getCompoundForm($object, $options); $form->submit([]); @@ -89,8 +91,8 @@ public function testValidateConstraints() $this->expectValidateAt(0, 'data', $object, ['group1', 'group2']); // Then custom constraints - $this->expectValidateValueAt(1, 'data', $object, $constraint1, 'group1'); - $this->expectValidateValueAt(2, 'data', $object, $constraint2, 'group2'); + $this->expectValidateValueAt(1, 'data', $object, [$constraint1], 'group1'); + $this->expectValidateValueAt(2, 'data', $object, [$constraint2, $constraint3], 'group2'); $this->validator->validate($form, new Form()); @@ -172,8 +174,8 @@ public function testValidateConstraintsOptionEvenIfNoValidConstraint() $parent->add($form); $parent->submit([]); - $this->expectValidateValueAt(0, 'data', $object, $constraint1, 'group1'); - $this->expectValidateValueAt(1, 'data', $object, $constraint2, 'group2'); + $this->expectValidateValueAt(0, 'data', $object, [$constraint1], 'group1'); + $this->expectValidateValueAt(1, 'data', $object, [$constraint2], 'group2'); $this->validator->validate($form, new Form()); From c41fa26069e37f7d974472d29aebcfde83e7f773 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Mon, 18 Nov 2019 08:43:26 +0100 Subject: [PATCH 20/23] [DI] minor cleanup --- src/Symfony/Component/DependencyInjection/Definition.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/Definition.php b/src/Symfony/Component/DependencyInjection/Definition.php index 14a3890f9577..83b7cd2d7f85 100644 --- a/src/Symfony/Component/DependencyInjection/Definition.php +++ b/src/Symfony/Component/DependencyInjection/Definition.php @@ -357,7 +357,7 @@ public function addMethodCall(string $method, array $arguments = [], bool $retur if (empty($method)) { throw new InvalidArgumentException('Method name cannot be empty.'); } - $this->calls[] = 2 < \func_num_args() && func_get_arg(2) ? [$method, $arguments, true] : [$method, $arguments]; + $this->calls[] = $returnsClone ? [$method, $arguments, true] : [$method, $arguments]; return $this; } From 698cc6bb3beb746d1ca45527d40776964f193171 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Wed, 20 Nov 2019 14:44:34 +0100 Subject: [PATCH 21/23] [Routing] fix tests --- .../Component/Routing/Tests/Loader/ObjectRouteLoaderTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Component/Routing/Tests/Loader/ObjectRouteLoaderTest.php b/src/Symfony/Component/Routing/Tests/Loader/ObjectRouteLoaderTest.php index b068a93828e9..cc0aa5d50711 100644 --- a/src/Symfony/Component/Routing/Tests/Loader/ObjectRouteLoaderTest.php +++ b/src/Symfony/Component/Routing/Tests/Loader/ObjectRouteLoaderTest.php @@ -92,7 +92,7 @@ public function getBadResourceStrings() public function testExceptionOnNoObjectReturned() { - $this->expectException('LogicException'); + $this->expectException(\TypeError::class); $loader = new TestObjectRouteLoader(); $loader->loaderMap = ['my_service' => 'NOT_AN_OBJECT']; $loader->load('my_service::method'); From 09220f9fde8637e7f3e82a75000881e47b54ccf3 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 21 Nov 2019 09:50:28 +0100 Subject: [PATCH 22/23] Update CHANGELOG for 5.0.0 --- CHANGELOG-5.0.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG-5.0.md b/CHANGELOG-5.0.md index 255b7812dc71..87ac1bdc29b5 100644 --- a/CHANGELOG-5.0.md +++ b/CHANGELOG-5.0.md @@ -7,6 +7,14 @@ in 5.0 minor versions. To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v5.0.0...v5.0.1 +* 5.0.0 (2019-11-21) + + * bug #34464 [Form] group constraints when calling the validator (nicolas-grekas) + * bug #34451 [DependencyInjection] Fix dumping multiple deprecated aliases (shyim) + * bug #34448 [Form] allow button names to start with uppercase letter (xabbuh) + * bug #34434 [Routing] Fix ContainerLoader and ObjectLoaderTest (fancyweb) + * bug #34428 [Security] Fix best encoder not wired using migrate_from (chalasr) + * 5.0.0-RC1 (2019-11-17) * bug #34419 [Cache] Disable igbinary on PHP >= 7.4 (nicolas-grekas) From bac8c507061799a22bb29c6a09c858f6c3cdcb7f Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Thu, 21 Nov 2019 09:51:01 +0100 Subject: [PATCH 23/23] Update VERSION for 5.0.0 --- src/Symfony/Component/HttpKernel/Kernel.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Kernel.php b/src/Symfony/Component/HttpKernel/Kernel.php index 6c38e9e96dbe..226802fd562c 100644 --- a/src/Symfony/Component/HttpKernel/Kernel.php +++ b/src/Symfony/Component/HttpKernel/Kernel.php @@ -68,12 +68,12 @@ abstract class Kernel implements KernelInterface, RebootableInterface, Terminabl private static $freshCache = []; - const VERSION = '5.0.0-DEV'; + const VERSION = '5.0.0'; const VERSION_ID = 50000; const MAJOR_VERSION = 5; const MINOR_VERSION = 0; const RELEASE_VERSION = 0; - const EXTRA_VERSION = 'DEV'; + const EXTRA_VERSION = ''; const END_OF_MAINTENANCE = '07/2020'; const END_OF_LIFE = '07/2020'; pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy