From 8bbbdbe74576639224d7019d90d80f4f2a4b5737 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 18 Jun 2020 21:30:53 +0200 Subject: [PATCH 1/3] Fix --- .../Component/Config/Resource/ReflectionClassResource.php | 2 +- .../DependencyInjection/Compiler/FactoryReturnTypePass.php | 2 +- .../HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php | 2 +- src/Symfony/Component/OptionsResolver/OptionsResolver.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Config/Resource/ReflectionClassResource.php b/src/Symfony/Component/Config/Resource/ReflectionClassResource.php index 294da3e10c..79b21fbf4c 100644 --- a/src/Symfony/Component/Config/Resource/ReflectionClassResource.php +++ b/src/Symfony/Component/Config/Resource/ReflectionClassResource.php @@ -197,7 +197,7 @@ class ReflectionClassResource implements SelfCheckingResourceInterface, \Seriali } else { $t = \PHP_VERSION_ID >= 70000 ? $p->getType() : ''; $stack[] = $p->isOptional(); - $stack[] = $t instanceof \ReflectionNamedType ? $t->getName() : (string) $t; + $stack[] = $t instanceof \ReflectionNamedType ? ((string) $t->allowsNull()).$t->getName() : (string) $t; $stack[] = $p->isPassedByReference(); $stack[] = \PHP_VERSION_ID >= 50600 ? $p->isVariadic() : ''; $stack[] = $p->getName(); diff --git a/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php b/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php index d688fb59fd..6b1277e26a 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php @@ -93,7 +93,7 @@ class FactoryReturnTypePass implements CompilerPassInterface $returnType = $m->getReturnType(); if (null !== $returnType && !$returnType->isBuiltin()) { - $returnType = $returnType instanceof \ReflectionNamedType ? $returnType->getName() : $returnType->__toString(); + $returnType = $returnType instanceof \ReflectionNamedType ? $returnType->getName() : (string) $returnType; if (null !== $class) { $declaringClass = $m->getDeclaringClass()->getName(); if ('self' === strtolower($returnType)) { diff --git a/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php b/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php index 2548a2a083..14e7ca3d11 100644 --- a/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php +++ b/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php @@ -105,7 +105,7 @@ final class ArgumentMetadataFactory implements ArgumentMetadataFactoryInterface if (!$type = $parameter->getType()) { return null; } - $name = $type instanceof \ReflectionNamedType ? $type->getName() : $type->__toString(); + $name = $type instanceof \ReflectionNamedType ? $type->getName() : (string) $type; if ('array' === $name && !$type->isBuiltin()) { // Special case for HHVM with variadics return null; diff --git a/src/Symfony/Component/OptionsResolver/OptionsResolver.php b/src/Symfony/Component/OptionsResolver/OptionsResolver.php index ffb101e512..7354caf8a6 100644 --- a/src/Symfony/Component/OptionsResolver/OptionsResolver.php +++ b/src/Symfony/Component/OptionsResolver/OptionsResolver.php @@ -1076,7 +1076,7 @@ class OptionsResolver implements Options return ($class = $parameter->getClass()) ? $class->name : null; } - if (!($type = $parameter->getType()) instanceof \ReflectionNamedType || $type->isBuiltin()) { + if (!($type = $parameter->getType()) || $type->isBuiltin()) { return null; } From 03b9ff177d84258a959a8fa5ec113289f0b1e982 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 18 Jun 2020 21:44:11 +0200 Subject: [PATCH 2/3] Use "composer/package-versions-deprecated" when possible --- composer.json | 1 + src/Symfony/Bridge/Doctrine/composer.json | 1 + src/Symfony/Component/Messenger/composer.json | 2 +- src/Symfony/Contracts/composer.json | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 84692253ea..3c75a0e70e 100644 --- a/composer.json +++ b/composer.json @@ -100,6 +100,7 @@ }, "require-dev": { "cache/integration-tests": "dev-master", + "composer/package-versions-deprecated": "^1.8", "doctrine/annotations": "~1.0", "doctrine/cache": "~1.6", "doctrine/collections": "~1.0", diff --git a/src/Symfony/Bridge/Doctrine/composer.json b/src/Symfony/Bridge/Doctrine/composer.json index fde197dedb..82848c2ad6 100644 --- a/src/Symfony/Bridge/Doctrine/composer.json +++ b/src/Symfony/Bridge/Doctrine/composer.json @@ -24,6 +24,7 @@ "symfony/service-contracts": "^1.1|^2" }, "require-dev": { + "composer/package-versions-deprecated": "^1.8", "symfony/stopwatch": "^3.4|^4.0|^5.0", "symfony/config": "^4.2|^5.0", "symfony/dependency-injection": "^3.4|^4.0|^5.0", diff --git a/src/Symfony/Component/Messenger/composer.json b/src/Symfony/Component/Messenger/composer.json index bbc5e5e3ff..3537c7d317 100644 --- a/src/Symfony/Component/Messenger/composer.json +++ b/src/Symfony/Component/Messenger/composer.json @@ -22,8 +22,8 @@ }, "require-dev": { "doctrine/dbal": "^2.6|^3.0", - "psr/cache": "~1.0", "doctrine/persistence": "^1.3", + "psr/cache": "~1.0", "symfony/console": "^3.4|^4.0|^5.0", "symfony/dependency-injection": "^3.4.19|^4.1.8|^5.0", "symfony/event-dispatcher": "^4.3|^5.0", diff --git a/src/Symfony/Contracts/composer.json b/src/Symfony/Contracts/composer.json index 4ac096ed11..f823bf30d6 100644 --- a/src/Symfony/Contracts/composer.json +++ b/src/Symfony/Contracts/composer.json @@ -45,6 +45,7 @@ ] }, "minimum-stability": "dev", + "version": "1.99", "extra": { "branch-alias": { "dev-master": "1.1-dev" From d2efe50eee1e125cdaf88c88e37ad084c1ccb0e2 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 18 Jun 2020 21:50:30 +0200 Subject: [PATCH 3/3] [DI] fix --- .../Exception/InvalidParameterTypeException.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php b/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php index 05fdb4a779..f6f12ad604 100644 --- a/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php +++ b/src/Symfony/Component/DependencyInjection/Exception/InvalidParameterTypeException.php @@ -23,7 +23,8 @@ class InvalidParameterTypeException extends InvalidArgumentException { $acceptedType = $parameter->getType(); $acceptedType = $acceptedType instanceof \ReflectionNamedType ? $acceptedType->getName() : (string) $acceptedType; + $this->code = $type; - parent::__construct(sprintf('Invalid definition for service "%s": argument %d of "%s::%s" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $parameter->getDeclaringClass()->getName(), $parameter->getDeclaringFunction()->getName(), $acceptedType, $type), $type); + parent::__construct(sprintf('Invalid definition for service "%s": argument %d of "%s::%s" accepts "%s", "%s" passed.', $serviceId, 1 + $parameter->getPosition(), $parameter->getDeclaringClass()->getName(), $parameter->getDeclaringFunction()->getName(), $acceptedType, $type)); } }