From 75dedf1d87745d99d97a17e6af05505d81ececda Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Wed, 2 Oct 2024 09:42:00 +0800 Subject: [PATCH] MDL-83401 core: Upgrade PHP-DI to 7.0.7 --- lib/php-di/php-di/composer.json | 4 ++-- lib/php-di/php-di/src/CompiledContainer.php | 3 ++- lib/php-di/php-di/src/Container.php | 7 ++++--- lib/php-di/php-di/src/ContainerBuilder.php | 2 +- .../php-di/src/Definition/Exception/InvalidDefinition.php | 2 +- .../src/Definition/Helper/CreateDefinitionHelper.php | 2 +- lib/php-di/php-di/src/Definition/ObjectDefinition.php | 4 ++-- .../src/Definition/ObjectDefinition/PropertyInjection.php | 2 +- .../php-di/src/Definition/Resolver/ParameterResolver.php | 4 ++-- .../src/Definition/Source/AttributeBasedAutowiring.php | 4 ++-- lib/php-di/php-di/src/Definition/Source/Autowiring.php | 2 +- .../php-di/src/Definition/Source/DefinitionArray.php | 2 +- lib/php-di/php-di/src/Definition/Source/DefinitionFile.php | 2 +- .../php-di/src/Definition/Source/DefinitionNormalizer.php | 2 +- lib/php-di/php-di/src/Definition/Source/NoAutowiring.php | 2 +- .../src/Definition/Source/ReflectionBasedAutowiring.php | 2 +- lib/php-di/php-di/src/Definition/Source/SourceCache.php | 2 +- lib/php-di/php-di/src/Proxy/ProxyFactory.php | 2 +- lib/php-di/php-di/src/functions.php | 4 ++-- lib/thirdpartylibs.xml | 2 +- 20 files changed, 29 insertions(+), 27 deletions(-) diff --git a/lib/php-di/php-di/composer.json b/lib/php-di/php-di/composer.json index 4c6ecfa84d8..aebe39e90c9 100644 --- a/lib/php-di/php-di/composer.json +++ b/lib/php-di/php-di/composer.json @@ -27,10 +27,10 @@ "php": ">=8.0", "psr/container": "^1.1 || ^2.0", "php-di/invoker": "^2.0", - "laravel/serializable-closure": "^1.0" + "laravel/serializable-closure": "^1.0 || ^2.0" }, "require-dev": { - "phpunit/phpunit": "^9.5", + "phpunit/phpunit": "^9.6", "mnapoli/phpunit-easymock": "^1.3", "friendsofphp/proxy-manager-lts": "^1", "friendsofphp/php-cs-fixer": "^3", diff --git a/lib/php-di/php-di/src/CompiledContainer.php b/lib/php-di/php-di/src/CompiledContainer.php index 3120600aac4..5b7f1320185 100644 --- a/lib/php-di/php-di/src/CompiledContainer.php +++ b/lib/php-di/php-di/src/CompiledContainer.php @@ -46,7 +46,8 @@ abstract class CompiledContainer extends Container if ($method !== null) { // Check if we are already getting this entry -> circular dependency if (isset($this->entriesBeingResolved[$id])) { - throw new DependencyException("Circular dependency detected while trying to resolve entry '$id'"); + $idList = implode(" -> ", [...array_keys($this->entriesBeingResolved), $id]); + throw new DependencyException("Circular dependency detected while trying to resolve entry '$id': Dependencies: " . $idList); } $this->entriesBeingResolved[$id] = true; diff --git a/lib/php-di/php-di/src/Container.php b/lib/php-di/php-di/src/Container.php index 8f780f8bdd3..9f8d945071a 100644 --- a/lib/php-di/php-di/src/Container.php +++ b/lib/php-di/php-di/src/Container.php @@ -89,8 +89,8 @@ class Container implements ContainerInterface, FactoryInterface, InvokerInterfac */ public function __construct( array|MutableDefinitionSource $definitions = [], - ProxyFactory $proxyFactory = null, - ContainerInterface $wrapperContainer = null + ?ProxyFactory $proxyFactory = null, + ?ContainerInterface $wrapperContainer = null ) { if (is_array($definitions)) { $this->definitionSource = $this->createDefaultDefinitionSource($definitions); @@ -344,7 +344,8 @@ class Container implements ContainerInterface, FactoryInterface, InvokerInterfac // Check if we are already getting this entry -> circular dependency if (isset($this->entriesBeingResolved[$entryName])) { - throw new DependencyException("Circular dependency detected while trying to resolve entry '$entryName'"); + $entryList = implode(" -> ", [...array_keys($this->entriesBeingResolved), $entryName]); + throw new DependencyException("Circular dependency detected while trying to resolve entry '$entryName': Dependencies: " . $entryList); } $this->entriesBeingResolved[$entryName] = true; diff --git a/lib/php-di/php-di/src/ContainerBuilder.php b/lib/php-di/php-di/src/ContainerBuilder.php index 7a7285c700a..99e57a40da5 100644 --- a/lib/php-di/php-di/src/ContainerBuilder.php +++ b/lib/php-di/php-di/src/ContainerBuilder.php @@ -238,7 +238,7 @@ class ContainerBuilder * @return $this * @throws InvalidArgumentException when writeToFile is set to true and the proxy directory is null */ - public function writeProxiesToFile(bool $writeToFile, string $proxyDirectory = null) : self + public function writeProxiesToFile(bool $writeToFile, ?string $proxyDirectory = null) : self { $this->ensureNotLocked(); diff --git a/lib/php-di/php-di/src/Definition/Exception/InvalidDefinition.php b/lib/php-di/php-di/src/Definition/Exception/InvalidDefinition.php index f00d93ef5e3..f88aa69ea53 100644 --- a/lib/php-di/php-di/src/Definition/Exception/InvalidDefinition.php +++ b/lib/php-di/php-di/src/Definition/Exception/InvalidDefinition.php @@ -14,7 +14,7 @@ use Psr\Container\ContainerExceptionInterface; */ class InvalidDefinition extends \Exception implements ContainerExceptionInterface { - public static function create(Definition $definition, string $message, \Exception $previous = null) : self + public static function create(Definition $definition, string $message, ?\Exception $previous = null) : self { return new self(sprintf( '%s' . \PHP_EOL . 'Full definition:' . \PHP_EOL . '%s', diff --git a/lib/php-di/php-di/src/Definition/Helper/CreateDefinitionHelper.php b/lib/php-di/php-di/src/Definition/Helper/CreateDefinitionHelper.php index 9755eeac115..5d2190512bb 100644 --- a/lib/php-di/php-di/src/Definition/Helper/CreateDefinitionHelper.php +++ b/lib/php-di/php-di/src/Definition/Helper/CreateDefinitionHelper.php @@ -43,7 +43,7 @@ class CreateDefinitionHelper implements DefinitionHelper * @param string|null $className Class name of the object. * If null, the name of the entry (in the container) will be used as class name. */ - public function __construct(string $className = null) + public function __construct(?string $className = null) { $this->className = $className; } diff --git a/lib/php-di/php-di/src/Definition/ObjectDefinition.php b/lib/php-di/php-di/src/Definition/ObjectDefinition.php index 8d1752feb96..bf571b463a1 100644 --- a/lib/php-di/php-di/src/Definition/ObjectDefinition.php +++ b/lib/php-di/php-di/src/Definition/ObjectDefinition.php @@ -52,7 +52,7 @@ class ObjectDefinition implements Definition /** * @param string $name Entry name */ - public function __construct(string $name, string $className = null) + public function __construct(string $name, ?string $className = null) { $this->name = $name; $this->setClassName($className); @@ -159,7 +159,7 @@ class ObjectDefinition implements Definition } } - public function setLazy(bool $lazy = null) : void + public function setLazy(?bool $lazy = null) : void { $this->lazy = $lazy; } diff --git a/lib/php-di/php-di/src/Definition/ObjectDefinition/PropertyInjection.php b/lib/php-di/php-di/src/Definition/ObjectDefinition/PropertyInjection.php index 9659466b6f8..9457986e66f 100644 --- a/lib/php-di/php-di/src/Definition/ObjectDefinition/PropertyInjection.php +++ b/lib/php-di/php-di/src/Definition/ObjectDefinition/PropertyInjection.php @@ -29,7 +29,7 @@ class PropertyInjection * @param string $propertyName Property name * @param mixed $value Value that should be injected in the property */ - public function __construct(string $propertyName, mixed $value, string $className = null) + public function __construct(string $propertyName, mixed $value, ?string $className = null) { $this->propertyName = $propertyName; $this->value = $value; diff --git a/lib/php-di/php-di/src/Definition/Resolver/ParameterResolver.php b/lib/php-di/php-di/src/Definition/Resolver/ParameterResolver.php index c54342b46f1..2f46d1f7e7e 100644 --- a/lib/php-di/php-di/src/Definition/Resolver/ParameterResolver.php +++ b/lib/php-di/php-di/src/Definition/Resolver/ParameterResolver.php @@ -31,8 +31,8 @@ class ParameterResolver * @throws InvalidDefinition A parameter has no value defined or guessable. */ public function resolveParameters( - MethodInjection $definition = null, - ReflectionMethod $method = null, + ?MethodInjection $definition = null, + ?ReflectionMethod $method = null, array $parameters = [], ) : array { $args = []; diff --git a/lib/php-di/php-di/src/Definition/Source/AttributeBasedAutowiring.php b/lib/php-di/php-di/src/Definition/Source/AttributeBasedAutowiring.php index a3010280dbd..0beb496451f 100644 --- a/lib/php-di/php-di/src/Definition/Source/AttributeBasedAutowiring.php +++ b/lib/php-di/php-di/src/Definition/Source/AttributeBasedAutowiring.php @@ -31,7 +31,7 @@ class AttributeBasedAutowiring implements DefinitionSource, Autowiring /** * @throws InvalidAttribute */ - public function autowire(string $name, ObjectDefinition $definition = null) : ObjectDefinition|null + public function autowire(string $name, ?ObjectDefinition $definition = null) : ObjectDefinition|null { $className = $definition ? $definition->getClassName() : $name; @@ -92,7 +92,7 @@ class AttributeBasedAutowiring implements DefinitionSource, Autowiring /** * @throws InvalidAttribute */ - private function readProperty(ReflectionProperty $property, ObjectDefinition $definition, string $classname = null) : void + private function readProperty(ReflectionProperty $property, ObjectDefinition $definition, ?string $classname = null) : void { if ($property->isStatic() || $property->isPromoted()) { return; diff --git a/lib/php-di/php-di/src/Definition/Source/Autowiring.php b/lib/php-di/php-di/src/Definition/Source/Autowiring.php index 3b2da67cc4a..d2959e23d0f 100644 --- a/lib/php-di/php-di/src/Definition/Source/Autowiring.php +++ b/lib/php-di/php-di/src/Definition/Source/Autowiring.php @@ -19,5 +19,5 @@ interface Autowiring * * @throws InvalidDefinition An invalid definition was found. */ - public function autowire(string $name, ObjectDefinition $definition = null) : ObjectDefinition|null; + public function autowire(string $name, ?ObjectDefinition $definition = null) : ObjectDefinition|null; } diff --git a/lib/php-di/php-di/src/Definition/Source/DefinitionArray.php b/lib/php-di/php-di/src/Definition/Source/DefinitionArray.php index 2652229e53b..5312cb985b2 100644 --- a/lib/php-di/php-di/src/Definition/Source/DefinitionArray.php +++ b/lib/php-di/php-di/src/Definition/Source/DefinitionArray.php @@ -27,7 +27,7 @@ class DefinitionArray implements DefinitionSource, MutableDefinitionSource private DefinitionNormalizer $normalizer; - public function __construct(array $definitions = [], Autowiring $autowiring = null) + public function __construct(array $definitions = [], ?Autowiring $autowiring = null) { if (isset($definitions[0])) { throw new \Exception('The PHP-DI definition is not indexed by an entry name in the definition array'); diff --git a/lib/php-di/php-di/src/Definition/Source/DefinitionFile.php b/lib/php-di/php-di/src/Definition/Source/DefinitionFile.php index 6c3d4355b61..bc9439b6a03 100644 --- a/lib/php-di/php-di/src/Definition/Source/DefinitionFile.php +++ b/lib/php-di/php-di/src/Definition/Source/DefinitionFile.php @@ -20,7 +20,7 @@ class DefinitionFile extends DefinitionArray */ public function __construct( private string $file, - Autowiring $autowiring = null, + ?Autowiring $autowiring = null, ) { // Lazy-loading to improve performances parent::__construct([], $autowiring); diff --git a/lib/php-di/php-di/src/Definition/Source/DefinitionNormalizer.php b/lib/php-di/php-di/src/Definition/Source/DefinitionNormalizer.php index d2058410e96..8f89095d7d7 100644 --- a/lib/php-di/php-di/src/Definition/Source/DefinitionNormalizer.php +++ b/lib/php-di/php-di/src/Definition/Source/DefinitionNormalizer.php @@ -37,7 +37,7 @@ class DefinitionNormalizer * * @throws InvalidDefinition */ - public function normalizeRootDefinition(mixed $definition, string $name, array $wildcardsReplacements = null) : Definition + public function normalizeRootDefinition(mixed $definition, string $name, ?array $wildcardsReplacements = null) : Definition { if ($definition instanceof DefinitionHelper) { $definition = $definition->getDefinition($name); diff --git a/lib/php-di/php-di/src/Definition/Source/NoAutowiring.php b/lib/php-di/php-di/src/Definition/Source/NoAutowiring.php index 73e4b6892e1..6a0c91b7c3b 100644 --- a/lib/php-di/php-di/src/Definition/Source/NoAutowiring.php +++ b/lib/php-di/php-di/src/Definition/Source/NoAutowiring.php @@ -14,7 +14,7 @@ use DI\Definition\ObjectDefinition; */ class NoAutowiring implements Autowiring { - public function autowire(string $name, ObjectDefinition $definition = null) : ObjectDefinition|null + public function autowire(string $name, ?ObjectDefinition $definition = null) : ObjectDefinition|null { throw new InvalidDefinition(sprintf( 'Cannot autowire entry "%s" because autowiring is disabled', diff --git a/lib/php-di/php-di/src/Definition/Source/ReflectionBasedAutowiring.php b/lib/php-di/php-di/src/Definition/Source/ReflectionBasedAutowiring.php index 781269f1aae..14a60f1e707 100644 --- a/lib/php-di/php-di/src/Definition/Source/ReflectionBasedAutowiring.php +++ b/lib/php-di/php-di/src/Definition/Source/ReflectionBasedAutowiring.php @@ -16,7 +16,7 @@ use ReflectionNamedType; */ class ReflectionBasedAutowiring implements DefinitionSource, Autowiring { - public function autowire(string $name, ObjectDefinition $definition = null) : ObjectDefinition|null + public function autowire(string $name, ?ObjectDefinition $definition = null) : ObjectDefinition|null { $className = $definition ? $definition->getClassName() : $name; diff --git a/lib/php-di/php-di/src/Definition/Source/SourceCache.php b/lib/php-di/php-di/src/Definition/Source/SourceCache.php index 3cdf777449a..90a1acc5de2 100644 --- a/lib/php-di/php-di/src/Definition/Source/SourceCache.php +++ b/lib/php-di/php-di/src/Definition/Source/SourceCache.php @@ -64,7 +64,7 @@ class SourceCache implements DefinitionSource, MutableDefinitionSource throw new \LogicException('You cannot set a definition at runtime on a container that has caching enabled. Doing so would risk caching the definition for the next execution, where it might be different. You can either put your definitions in a file, remove the cache or ->set() a raw value directly (PHP object, string, int, ...) instead of a PHP-DI definition.'); } - private function shouldBeCached(Definition $definition = null) : bool + private function shouldBeCached(?Definition $definition = null) : bool { return // Cache missing definitions diff --git a/lib/php-di/php-di/src/Proxy/ProxyFactory.php b/lib/php-di/php-di/src/Proxy/ProxyFactory.php index 562433741b1..b19928a6be7 100644 --- a/lib/php-di/php-di/src/Proxy/ProxyFactory.php +++ b/lib/php-di/php-di/src/Proxy/ProxyFactory.php @@ -16,7 +16,7 @@ use ProxyManager\Proxy\LazyLoadingInterface; * * Wraps Ocramius/ProxyManager LazyLoadingValueHolderFactory. * - * @see \ProxyManager\Factory\LazyLoadingValueHolderFactory + * @see LazyLoadingValueHolderFactory * * @since 5.0 * @author Matthieu Napoli diff --git a/lib/php-di/php-di/src/functions.php b/lib/php-di/php-di/src/functions.php index bf90ec1cdda..43aa9d93b9d 100644 --- a/lib/php-di/php-di/src/functions.php +++ b/lib/php-di/php-di/src/functions.php @@ -30,7 +30,7 @@ if (! function_exists('DI\create')) { * @param string|null $className Class name of the object. * If null, the name of the entry (in the container) will be used as class name. */ - function create(string $className = null) : CreateDefinitionHelper + function create(?string $className = null) : CreateDefinitionHelper { return new CreateDefinitionHelper($className); } @@ -43,7 +43,7 @@ if (! function_exists('DI\autowire')) { * @param string|null $className Class name of the object. * If null, the name of the entry (in the container) will be used as class name. */ - function autowire(string $className = null) : AutowireDefinitionHelper + function autowire(?string $className = null) : AutowireDefinitionHelper { return new AutowireDefinitionHelper($className); } diff --git a/lib/thirdpartylibs.xml b/lib/thirdpartylibs.xml index d64ca278ed4..be39f0284e8 100644 --- a/lib/thirdpartylibs.xml +++ b/lib/thirdpartylibs.xml @@ -782,7 +782,7 @@ All rights reserved. php-di/php-di PHP Dependency Injector - 7.0.6 + 7.0.8 MIT https://github.com/PHP-DI/PHP-DI