aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler')
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php228
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php192
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php41
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php475
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php84
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php87
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php78
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php90
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php88
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php43
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php245
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php119
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php27
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php89
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php56
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php37
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php231
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php220
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php269
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php138
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php75
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php66
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php122
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php33
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php39
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php98
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php25
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php83
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php94
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php227
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php190
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php40
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php44
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php38
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php71
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php168
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php136
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php112
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php87
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php40
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php80
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php52
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php38
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php135
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php98
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php99
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php118
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php120
48 files changed, 0 insertions, 5365 deletions
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php
deleted file mode 100644
index ad3cb52..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AbstractRecursivePass.php
+++ /dev/null
@@ -1,228 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\ArgumentInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ExpressionLanguage;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * @author Nicolas Grekas <p@tchwork.com>
- */
-abstract class AbstractRecursivePass implements CompilerPassInterface
-{
- /**
- * @var ContainerBuilder
- */
- protected $container;
- protected $currentId;
-
- private $processExpressions = false;
- private $expressionLanguage;
- private $inExpression = false;
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- $this->container = $container;
-
- try {
- $this->processValue($container->getDefinitions(), true);
- } finally {
- $this->container = null;
- }
- }
-
- protected function enableExpressionProcessing()
- {
- $this->processExpressions = true;
- }
-
- protected function inExpression(bool $reset = true): bool
- {
- $inExpression = $this->inExpression;
- if ($reset) {
- $this->inExpression = false;
- }
-
- return $inExpression;
- }
-
- /**
- * Processes a value found in a definition tree.
- *
- * @param mixed $value
- * @param bool $isRoot
- *
- * @return mixed The processed value
- */
- protected function processValue($value, $isRoot = false)
- {
- if (\is_array($value)) {
- foreach ($value as $k => $v) {
- if ($isRoot) {
- $this->currentId = $k;
- }
- if ($v !== $processedValue = $this->processValue($v, $isRoot)) {
- $value[$k] = $processedValue;
- }
- }
- } elseif ($value instanceof ArgumentInterface) {
- $value->setValues($this->processValue($value->getValues()));
- } elseif ($value instanceof Expression && $this->processExpressions) {
- $this->getExpressionLanguage()->compile((string) $value, ['this' => 'container']);
- } elseif ($value instanceof Definition) {
- $value->setArguments($this->processValue($value->getArguments()));
- $value->setProperties($this->processValue($value->getProperties()));
- $value->setMethodCalls($this->processValue($value->getMethodCalls()));
-
- $changes = $value->getChanges();
- if (isset($changes['factory'])) {
- $value->setFactory($this->processValue($value->getFactory()));
- }
- if (isset($changes['configurator'])) {
- $value->setConfigurator($this->processValue($value->getConfigurator()));
- }
- }
-
- return $value;
- }
-
- /**
- * @param bool $required
- *
- * @return \ReflectionFunctionAbstract|null
- *
- * @throws RuntimeException
- */
- protected function getConstructor(Definition $definition, $required)
- {
- if ($definition->isSynthetic()) {
- return null;
- }
-
- if (\is_string($factory = $definition->getFactory())) {
- if (!\function_exists($factory)) {
- throw new RuntimeException(sprintf('Invalid service "%s": function "%s" does not exist.', $this->currentId, $factory));
- }
- $r = new \ReflectionFunction($factory);
- if (false !== $r->getFileName() && file_exists($r->getFileName())) {
- $this->container->fileExists($r->getFileName());
- }
-
- return $r;
- }
-
- if ($factory) {
- list($class, $method) = $factory;
- if ($class instanceof Reference) {
- $class = $this->container->findDefinition((string) $class)->getClass();
- } elseif ($class instanceof Definition) {
- $class = $class->getClass();
- } elseif (null === $class) {
- $class = $definition->getClass();
- }
-
- if ('__construct' === $method) {
- throw new RuntimeException(sprintf('Invalid service "%s": "__construct()" cannot be used as a factory method.', $this->currentId));
- }
-
- return $this->getReflectionMethod(new Definition($class), $method);
- }
-
- $class = $definition->getClass();
-
- try {
- if (!$r = $this->container->getReflectionClass($class)) {
- throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class));
- }
- } catch (\ReflectionException $e) {
- throw new RuntimeException(sprintf('Invalid service "%s": %s.', $this->currentId, lcfirst(rtrim($e->getMessage(), '.'))));
- }
- if (!$r = $r->getConstructor()) {
- if ($required) {
- throw new RuntimeException(sprintf('Invalid service "%s": class%s has no constructor.', $this->currentId, sprintf($class !== $this->currentId ? ' "%s"' : '', $class)));
- }
- } elseif (!$r->isPublic()) {
- throw new RuntimeException(sprintf('Invalid service "%s": %s must be public.', $this->currentId, sprintf($class !== $this->currentId ? 'constructor of class "%s"' : 'its constructor', $class)));
- }
-
- return $r;
- }
-
- /**
- * @param string $method
- *
- * @throws RuntimeException
- *
- * @return \ReflectionFunctionAbstract
- */
- protected function getReflectionMethod(Definition $definition, $method)
- {
- if ('__construct' === $method) {
- return $this->getConstructor($definition, true);
- }
-
- if (!$class = $definition->getClass()) {
- throw new RuntimeException(sprintf('Invalid service "%s": the class is not set.', $this->currentId));
- }
-
- if (!$r = $this->container->getReflectionClass($class)) {
- throw new RuntimeException(sprintf('Invalid service "%s": class "%s" does not exist.', $this->currentId, $class));
- }
-
- if (!$r->hasMethod($method)) {
- throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" does not exist.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method));
- }
-
- $r = $r->getMethod($method);
- if (!$r->isPublic()) {
- throw new RuntimeException(sprintf('Invalid service "%s": method "%s()" must be public.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method));
- }
-
- return $r;
- }
-
- private function getExpressionLanguage(): ExpressionLanguage
- {
- if (null === $this->expressionLanguage) {
- if (!class_exists(ExpressionLanguage::class)) {
- throw new LogicException('Unable to use expressions as the Symfony ExpressionLanguage component is not installed.');
- }
-
- $providers = $this->container->getExpressionLanguageProviders();
- $this->expressionLanguage = new ExpressionLanguage(null, $providers, function (string $arg): string {
- if ('""' === substr_replace($arg, '', 1, -1)) {
- $id = stripcslashes(substr($arg, 1, -1));
- $this->inExpression = true;
- $arg = $this->processValue(new Reference($id));
- $this->inExpression = false;
- if (!$arg instanceof Reference) {
- throw new RuntimeException(sprintf('"%s::processValue()" must return a Reference when processing an expression, %s returned for service("%s").', \get_class($this), \is_object($arg) ? \get_class($arg) : \gettype($arg), $id));
- }
- $arg = sprintf('"%s"', $arg);
- }
-
- return sprintf('$this->get(%s)', $arg);
- });
- }
-
- return $this->expressionLanguage;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php
deleted file mode 100644
index 59a27ae..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AnalyzeServiceReferencesPass.php
+++ /dev/null
@@ -1,192 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\ArgumentInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Run this pass before passes that need to know more about the relation of
- * your services.
- *
- * This class will populate the ServiceReferenceGraph with information. You can
- * retrieve the graph in other passes from the compiler.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class AnalyzeServiceReferencesPass extends AbstractRecursivePass implements RepeatablePassInterface
-{
- private $graph;
- private $currentDefinition;
- private $onlyConstructorArguments;
- private $hasProxyDumper;
- private $lazy;
- private $byConstructor;
- private $definitions;
- private $aliases;
-
- /**
- * @param bool $onlyConstructorArguments Sets this Service Reference pass to ignore method calls
- */
- public function __construct(bool $onlyConstructorArguments = false, bool $hasProxyDumper = true)
- {
- $this->onlyConstructorArguments = $onlyConstructorArguments;
- $this->hasProxyDumper = $hasProxyDumper;
- $this->enableExpressionProcessing();
- }
-
- /**
- * {@inheritdoc}
- */
- public function setRepeatedPass(RepeatedPass $repeatedPass)
- {
- @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
- }
-
- /**
- * Processes a ContainerBuilder object to populate the service reference graph.
- */
- public function process(ContainerBuilder $container)
- {
- $this->container = $container;
- $this->graph = $container->getCompiler()->getServiceReferenceGraph();
- $this->graph->clear();
- $this->lazy = false;
- $this->byConstructor = false;
- $this->definitions = $container->getDefinitions();
- $this->aliases = $container->getAliases();
-
- foreach ($this->aliases as $id => $alias) {
- $targetId = $this->getDefinitionId((string) $alias);
- $this->graph->connect($id, $alias, $targetId, null !== $targetId ? $this->container->getDefinition($targetId) : null, null);
- }
-
- try {
- parent::process($container);
- } finally {
- $this->aliases = $this->definitions = [];
- }
- }
-
- protected function processValue($value, $isRoot = false)
- {
- $lazy = $this->lazy;
- $inExpression = $this->inExpression();
-
- if ($value instanceof ArgumentInterface) {
- $this->lazy = true;
- parent::processValue($value->getValues());
- $this->lazy = $lazy;
-
- return $value;
- }
- if ($value instanceof Reference) {
- $targetId = $this->getDefinitionId((string) $value);
- $targetDefinition = null !== $targetId ? $this->container->getDefinition($targetId) : null;
-
- $this->graph->connect(
- $this->currentId,
- $this->currentDefinition,
- $targetId,
- $targetDefinition,
- $value,
- $this->lazy || ($this->hasProxyDumper && $targetDefinition && $targetDefinition->isLazy()),
- ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE === $value->getInvalidBehavior(),
- $this->byConstructor
- );
-
- if ($inExpression) {
- $this->graph->connect(
- '.internal.reference_in_expression',
- null,
- $targetId,
- $targetDefinition,
- $value,
- $this->lazy || ($targetDefinition && $targetDefinition->isLazy()),
- true
- );
- }
-
- return $value;
- }
- if (!$value instanceof Definition) {
- return parent::processValue($value, $isRoot);
- }
- if ($isRoot) {
- if ($value->isSynthetic() || $value->isAbstract()) {
- return $value;
- }
- $this->currentDefinition = $value;
- } elseif ($this->currentDefinition === $value) {
- return $value;
- }
- $this->lazy = false;
-
- $byConstructor = $this->byConstructor;
- $this->byConstructor = $isRoot || $byConstructor;
- $this->processValue($value->getFactory());
- $this->processValue($value->getArguments());
-
- $properties = $value->getProperties();
- $setters = $value->getMethodCalls();
-
- // Any references before a "wither" are part of the constructor-instantiation graph
- $lastWitherIndex = null;
- foreach ($setters as $k => $call) {
- if ($call[2] ?? false) {
- $lastWitherIndex = $k;
- }
- }
-
- if (null !== $lastWitherIndex) {
- $this->processValue($properties);
- $setters = $properties = [];
-
- foreach ($value->getMethodCalls() as $k => $call) {
- if (null === $lastWitherIndex) {
- $setters[] = $call;
- continue;
- }
-
- if ($lastWitherIndex === $k) {
- $lastWitherIndex = null;
- }
-
- $this->processValue($call);
- }
- }
-
- $this->byConstructor = $byConstructor;
-
- if (!$this->onlyConstructorArguments) {
- $this->processValue($properties);
- $this->processValue($setters);
- $this->processValue($value->getConfigurator());
- }
- $this->lazy = $lazy;
-
- return $value;
- }
-
- private function getDefinitionId(string $id): ?string
- {
- while (isset($this->aliases[$id])) {
- $id = (string) $this->aliases[$id];
- }
-
- return isset($this->definitions[$id]) ? $id : null;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php
deleted file mode 100644
index 0342068..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutoAliasServicePass.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * Sets a service to be an alias of another one, given a format pattern.
- */
-class AutoAliasServicePass implements CompilerPassInterface
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->findTaggedServiceIds('auto_alias') as $serviceId => $tags) {
- foreach ($tags as $tag) {
- if (!isset($tag['format'])) {
- throw new InvalidArgumentException(sprintf('Missing tag information "format" on auto_alias service "%s".', $serviceId));
- }
-
- $aliasId = $container->getParameterBag()->resolveValue($tag['format']);
- if ($container->hasDefinition($aliasId) || $container->hasAlias($aliasId)) {
- $container->setAlias($serviceId, new Alias($aliasId, true));
- }
- }
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php
deleted file mode 100644
index 8d46fd6..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowirePass.php
+++ /dev/null
@@ -1,475 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\Config\Resource\ClassExistenceResource;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\AutowiringFailedException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper;
-use Symfony\Component\DependencyInjection\TypedReference;
-
-/**
- * Inspects existing service definitions and wires the autowired ones using the type hints of their classes.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class AutowirePass extends AbstractRecursivePass
-{
- private $types;
- private $ambiguousServiceTypes;
- private $lastFailure;
- private $throwOnAutowiringException;
- private $decoratedClass;
- private $decoratedId;
- private $methodCalls;
- private $getPreviousValue;
- private $decoratedMethodIndex;
- private $decoratedMethodArgumentIndex;
- private $typesClone;
-
- public function __construct(bool $throwOnAutowireException = true)
- {
- $this->throwOnAutowiringException = $throwOnAutowireException;
- }
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- try {
- $this->typesClone = clone $this;
- parent::process($container);
- } finally {
- $this->decoratedClass = null;
- $this->decoratedId = null;
- $this->methodCalls = null;
- $this->getPreviousValue = null;
- $this->decoratedMethodIndex = null;
- $this->decoratedMethodArgumentIndex = null;
- $this->typesClone = null;
- }
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- try {
- return $this->doProcessValue($value, $isRoot);
- } catch (AutowiringFailedException $e) {
- if ($this->throwOnAutowiringException) {
- throw $e;
- }
-
- $this->container->getDefinition($this->currentId)->addError($e->getMessageCallback() ?? $e->getMessage());
-
- return parent::processValue($value, $isRoot);
- }
- }
-
- /**
- * @return mixed
- */
- private function doProcessValue($value, bool $isRoot = false)
- {
- if ($value instanceof TypedReference) {
- if ($ref = $this->getAutowiredReference($value)) {
- return $ref;
- }
- if (ContainerBuilder::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $value->getInvalidBehavior()) {
- $message = $this->createTypeNotFoundMessageCallback($value, 'it');
-
- // since the error message varies by referenced id and $this->currentId, so should the id of the dummy errored definition
- $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, (string) $value), $value->getType())
- ->addError($message);
-
- return new TypedReference($id, $value->getType(), $value->getInvalidBehavior(), $value->getName());
- }
- }
- $value = parent::processValue($value, $isRoot);
-
- if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) {
- return $value;
- }
- if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) {
- $this->container->log($this, sprintf('Skipping service "%s": Class or interface "%s" cannot be loaded.', $this->currentId, $value->getClass()));
-
- return $value;
- }
-
- $this->methodCalls = $value->getMethodCalls();
-
- try {
- $constructor = $this->getConstructor($value, false);
- } catch (RuntimeException $e) {
- throw new AutowiringFailedException($this->currentId, $e->getMessage(), 0, $e);
- }
-
- if ($constructor) {
- array_unshift($this->methodCalls, [$constructor, $value->getArguments()]);
- }
-
- $this->methodCalls = $this->autowireCalls($reflectionClass, $isRoot);
-
- if ($constructor) {
- list(, $arguments) = array_shift($this->methodCalls);
-
- if ($arguments !== $value->getArguments()) {
- $value->setArguments($arguments);
- }
- }
-
- if ($this->methodCalls !== $value->getMethodCalls()) {
- $value->setMethodCalls($this->methodCalls);
- }
-
- return $value;
- }
-
- private function autowireCalls(\ReflectionClass $reflectionClass, bool $isRoot): array
- {
- $this->decoratedId = null;
- $this->decoratedClass = null;
- $this->getPreviousValue = null;
-
- if ($isRoot && ($definition = $this->container->getDefinition($this->currentId)) && $this->container->has($this->decoratedId = $definition->innerServiceId)) {
- $this->decoratedClass = $this->container->findDefinition($this->decoratedId)->getClass();
- }
-
- foreach ($this->methodCalls as $i => $call) {
- $this->decoratedMethodIndex = $i;
- list($method, $arguments) = $call;
-
- if ($method instanceof \ReflectionFunctionAbstract) {
- $reflectionMethod = $method;
- } else {
- $definition = new Definition($reflectionClass->name);
- try {
- $reflectionMethod = $this->getReflectionMethod($definition, $method);
- } catch (RuntimeException $e) {
- if ($definition->getFactory()) {
- continue;
- }
- throw $e;
- }
- }
-
- $arguments = $this->autowireMethod($reflectionMethod, $arguments);
-
- if ($arguments !== $call[1]) {
- $this->methodCalls[$i][1] = $arguments;
- }
- }
-
- return $this->methodCalls;
- }
-
- /**
- * Autowires the constructor or a method.
- *
- * @return array The autowired arguments
- *
- * @throws AutowiringFailedException
- */
- private function autowireMethod(\ReflectionFunctionAbstract $reflectionMethod, array $arguments): array
- {
- $class = $reflectionMethod instanceof \ReflectionMethod ? $reflectionMethod->class : $this->currentId;
- $method = $reflectionMethod->name;
- $parameters = $reflectionMethod->getParameters();
- if ($reflectionMethod->isVariadic()) {
- array_pop($parameters);
- }
-
- foreach ($parameters as $index => $parameter) {
- if (\array_key_exists($index, $arguments) && '' !== $arguments[$index]) {
- continue;
- }
-
- $type = ProxyHelper::getTypeHint($reflectionMethod, $parameter, true);
-
- if (!$type) {
- if (isset($arguments[$index])) {
- continue;
- }
-
- // no default value? Then fail
- if (!$parameter->isDefaultValueAvailable()) {
- // For core classes, isDefaultValueAvailable() can
- // be false when isOptional() returns true. If the
- // argument *is* optional, allow it to be missing
- if ($parameter->isOptional()) {
- continue;
- }
- $type = ProxyHelper::getTypeHint($reflectionMethod, $parameter, false);
- $type = $type ? sprintf('is type-hinted "%s"', ltrim($type, '\\')) : 'has no type-hint';
-
- throw new AutowiringFailedException($this->currentId, sprintf('Cannot autowire service "%s": argument "$%s" of method "%s()" %s, you should configure its value explicitly.', $this->currentId, $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method, $type));
- }
-
- // specifically pass the default value
- $arguments[$index] = $parameter->getDefaultValue();
-
- continue;
- }
-
- $getValue = function () use ($type, $parameter, $class, $method) {
- if (!$value = $this->getAutowiredReference($ref = new TypedReference($type, $type, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $parameter->name))) {
- $failureMessage = $this->createTypeNotFoundMessageCallback($ref, sprintf('argument "$%s" of method "%s()"', $parameter->name, $class !== $this->currentId ? $class.'::'.$method : $method));
-
- if ($parameter->isDefaultValueAvailable()) {
- $value = $parameter->getDefaultValue();
- } elseif (!$parameter->allowsNull()) {
- throw new AutowiringFailedException($this->currentId, $failureMessage);
- }
- }
-
- return $value;
- };
-
- if ($this->decoratedClass && $isDecorated = is_a($this->decoratedClass, $type, true)) {
- if ($this->getPreviousValue) {
- // The inner service is injected only if there is only 1 argument matching the type of the decorated class
- // across all arguments of all autowired methods.
- // If a second matching argument is found, the default behavior is restored.
-
- $getPreviousValue = $this->getPreviousValue;
- $this->methodCalls[$this->decoratedMethodIndex][1][$this->decoratedMethodArgumentIndex] = $getPreviousValue();
- $this->decoratedClass = null; // Prevent further checks
- } else {
- $arguments[$index] = new TypedReference($this->decoratedId, $this->decoratedClass);
- $this->getPreviousValue = $getValue;
- $this->decoratedMethodArgumentIndex = $index;
-
- continue;
- }
- }
-
- $arguments[$index] = $getValue();
- }
-
- if ($parameters && !isset($arguments[++$index])) {
- while (0 <= --$index) {
- $parameter = $parameters[$index];
- if (!$parameter->isDefaultValueAvailable() || $parameter->getDefaultValue() !== $arguments[$index]) {
- break;
- }
- unset($arguments[$index]);
- }
- }
-
- // it's possible index 1 was set, then index 0, then 2, etc
- // make sure that we re-order so they're injected as expected
- ksort($arguments);
-
- return $arguments;
- }
-
- /**
- * Returns a reference to the service matching the given type, if any.
- */
- private function getAutowiredReference(TypedReference $reference): ?TypedReference
- {
- $this->lastFailure = null;
- $type = $reference->getType();
-
- if ($type !== (string) $reference) {
- return $reference;
- }
-
- if (null !== $name = $reference->getName()) {
- if ($this->container->has($alias = $type.' $'.$name) && !$this->container->findDefinition($alias)->isAbstract()) {
- return new TypedReference($alias, $type, $reference->getInvalidBehavior());
- }
-
- if ($this->container->has($name) && !$this->container->findDefinition($name)->isAbstract()) {
- foreach ($this->container->getAliases() as $id => $alias) {
- if ($name === (string) $alias && 0 === strpos($id, $type.' $')) {
- return new TypedReference($name, $type, $reference->getInvalidBehavior());
- }
- }
- }
- }
-
- if ($this->container->has($type) && !$this->container->findDefinition($type)->isAbstract()) {
- return new TypedReference($type, $type, $reference->getInvalidBehavior());
- }
-
- return null;
- }
-
- /**
- * Populates the list of available types.
- */
- private function populateAvailableTypes(ContainerBuilder $container)
- {
- $this->types = [];
- $this->ambiguousServiceTypes = [];
-
- foreach ($container->getDefinitions() as $id => $definition) {
- $this->populateAvailableType($container, $id, $definition);
- }
- }
-
- /**
- * Populates the list of available types for a given definition.
- */
- private function populateAvailableType(ContainerBuilder $container, string $id, Definition $definition)
- {
- // Never use abstract services
- if ($definition->isAbstract()) {
- return;
- }
-
- if ('' === $id || '.' === $id[0] || $definition->isDeprecated() || !$reflectionClass = $container->getReflectionClass($definition->getClass(), false)) {
- return;
- }
-
- foreach ($reflectionClass->getInterfaces() as $reflectionInterface) {
- $this->set($reflectionInterface->name, $id);
- }
-
- do {
- $this->set($reflectionClass->name, $id);
- } while ($reflectionClass = $reflectionClass->getParentClass());
- }
-
- /**
- * Associates a type and a service id if applicable.
- */
- private function set(string $type, string $id)
- {
- // is this already a type/class that is known to match multiple services?
- if (isset($this->ambiguousServiceTypes[$type])) {
- $this->ambiguousServiceTypes[$type][] = $id;
-
- return;
- }
-
- // check to make sure the type doesn't match multiple services
- if (!isset($this->types[$type]) || $this->types[$type] === $id) {
- $this->types[$type] = $id;
-
- return;
- }
-
- // keep an array of all services matching this type
- if (!isset($this->ambiguousServiceTypes[$type])) {
- $this->ambiguousServiceTypes[$type] = [$this->types[$type]];
- unset($this->types[$type]);
- }
- $this->ambiguousServiceTypes[$type][] = $id;
- }
-
- private function createTypeNotFoundMessageCallback(TypedReference $reference, string $label): callable
- {
- if (null === $this->typesClone->container) {
- $this->typesClone->container = new ContainerBuilder($this->container->getParameterBag());
- $this->typesClone->container->setAliases($this->container->getAliases());
- $this->typesClone->container->setDefinitions($this->container->getDefinitions());
- $this->typesClone->container->setResourceTracking(false);
- }
- $currentId = $this->currentId;
-
- return (function () use ($reference, $label, $currentId) {
- return $this->createTypeNotFoundMessage($reference, $label, $currentId);
- })->bindTo($this->typesClone);
- }
-
- private function createTypeNotFoundMessage(TypedReference $reference, string $label, string $currentId): string
- {
- if (!$r = $this->container->getReflectionClass($type = $reference->getType(), false)) {
- // either $type does not exist or a parent class does not exist
- try {
- $resource = new ClassExistenceResource($type, false);
- // isFresh() will explode ONLY if a parent class/trait does not exist
- $resource->isFresh(0);
- $parentMsg = false;
- } catch (\ReflectionException $e) {
- $parentMsg = $e->getMessage();
- }
-
- $message = sprintf('has type "%s" but this class %s.', $type, $parentMsg ? sprintf('is missing a parent class (%s)', $parentMsg) : 'was not found');
- } else {
- $alternatives = $this->createTypeAlternatives($this->container, $reference);
- $message = $this->container->has($type) ? 'this service is abstract' : 'no such service exists';
- $message = sprintf('references %s "%s" but %s.%s', $r->isInterface() ? 'interface' : 'class', $type, $message, $alternatives);
-
- if ($r->isInterface() && !$alternatives) {
- $message .= ' Did you create a class that implements this interface?';
- }
- }
-
- $message = sprintf('Cannot autowire service "%s": %s %s', $currentId, $label, $message);
-
- if (null !== $this->lastFailure) {
- $message = $this->lastFailure."\n".$message;
- $this->lastFailure = null;
- }
-
- return $message;
- }
-
- private function createTypeAlternatives(ContainerBuilder $container, TypedReference $reference): string
- {
- // try suggesting available aliases first
- if ($message = $this->getAliasesSuggestionForType($container, $type = $reference->getType())) {
- return ' '.$message;
- }
- if (null === $this->ambiguousServiceTypes) {
- $this->populateAvailableTypes($container);
- }
-
- $servicesAndAliases = $container->getServiceIds();
- if (!$container->has($type) && false !== $key = array_search(strtolower($type), array_map('strtolower', $servicesAndAliases))) {
- return sprintf(' Did you mean "%s"?', $servicesAndAliases[$key]);
- } elseif (isset($this->ambiguousServiceTypes[$type])) {
- $message = sprintf('one of these existing services: "%s"', implode('", "', $this->ambiguousServiceTypes[$type]));
- } elseif (isset($this->types[$type])) {
- $message = sprintf('the existing "%s" service', $this->types[$type]);
- } else {
- return '';
- }
-
- return sprintf(' You should maybe alias this %s to %s.', class_exists($type, false) ? 'class' : 'interface', $message);
- }
-
- private function getAliasesSuggestionForType(ContainerBuilder $container, string $type): ?string
- {
- $aliases = [];
- foreach (class_parents($type) + class_implements($type) as $parent) {
- if ($container->has($parent) && !$container->findDefinition($parent)->isAbstract()) {
- $aliases[] = $parent;
- }
- }
-
- if (1 < $len = \count($aliases)) {
- $message = 'Try changing the type-hint to one of its parents: ';
- for ($i = 0, --$len; $i < $len; ++$i) {
- $message .= sprintf('%s "%s", ', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]);
- }
- $message .= sprintf('or %s "%s".', class_exists($aliases[$i], false) ? 'class' : 'interface', $aliases[$i]);
-
- return $message;
- }
-
- if ($aliases) {
- return sprintf('Try changing the type-hint to "%s" instead.', $aliases[0]);
- }
-
- return null;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php
deleted file mode 100644
index 20d3113..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/AutowireRequiredMethodsPass.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * Looks for definitions with autowiring enabled and registers their corresponding "@required" methods as setters.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class AutowireRequiredMethodsPass extends AbstractRecursivePass
-{
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- $value = parent::processValue($value, $isRoot);
-
- if (!$value instanceof Definition || !$value->isAutowired() || $value->isAbstract() || !$value->getClass()) {
- return $value;
- }
- if (!$reflectionClass = $this->container->getReflectionClass($value->getClass(), false)) {
- return $value;
- }
-
- $alreadyCalledMethods = [];
- $withers = [];
-
- foreach ($value->getMethodCalls() as list($method)) {
- $alreadyCalledMethods[strtolower($method)] = true;
- }
-
- foreach ($reflectionClass->getMethods() as $reflectionMethod) {
- $r = $reflectionMethod;
-
- if ($r->isConstructor() || isset($alreadyCalledMethods[strtolower($r->name)])) {
- continue;
- }
-
- while (true) {
- if (false !== $doc = $r->getDocComment()) {
- if (false !== stripos($doc, '@required') && preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@required(?:\s|\*/$)#i', $doc)) {
- if (preg_match('#(?:^/\*\*|\n\s*+\*)\s*+@return\s++static[\s\*]#i', $doc)) {
- $withers[] = [$reflectionMethod->name, [], true];
- } else {
- $value->addMethodCall($reflectionMethod->name, []);
- }
- break;
- }
- if (false === stripos($doc, '@inheritdoc') || !preg_match('#(?:^/\*\*|\n\s*+\*)\s*+(?:\{@inheritdoc\}|@inheritdoc)(?:\s|\*/$)#i', $doc)) {
- break;
- }
- }
- try {
- $r = $r->getPrototype();
- } catch (\ReflectionException $e) {
- break; // method has no prototype
- }
- }
- }
-
- if ($withers) {
- // Prepend withers to prevent creating circular loops
- $setters = $value->getMethodCalls();
- $value->setMethodCalls($withers);
- foreach ($setters as $call) {
- $value->addMethodCall($call[0], $call[1], $call[2] ?? false);
- }
- }
-
- return $value;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php
deleted file mode 100644
index d289c05..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckArgumentsValidityPass.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * Checks if arguments of methods are properly configured.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class CheckArgumentsValidityPass extends AbstractRecursivePass
-{
- private $throwExceptions;
-
- public function __construct(bool $throwExceptions = true)
- {
- $this->throwExceptions = $throwExceptions;
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Definition) {
- return parent::processValue($value, $isRoot);
- }
-
- $i = 0;
- foreach ($value->getArguments() as $k => $v) {
- if ($k !== $i++) {
- if (!\is_int($k)) {
- $msg = sprintf('Invalid constructor argument for service "%s": integer expected but found string "%s". Check your service definition.', $this->currentId, $k);
- $value->addError($msg);
- if ($this->throwExceptions) {
- throw new RuntimeException($msg);
- }
-
- break;
- }
-
- $msg = sprintf('Invalid constructor argument %d for service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $this->currentId, $i);
- $value->addError($msg);
- if ($this->throwExceptions) {
- throw new RuntimeException($msg);
- }
- }
- }
-
- foreach ($value->getMethodCalls() as $methodCall) {
- $i = 0;
- foreach ($methodCall[1] as $k => $v) {
- if ($k !== $i++) {
- if (!\is_int($k)) {
- $msg = sprintf('Invalid argument for method call "%s" of service "%s": integer expected but found string "%s". Check your service definition.', $methodCall[0], $this->currentId, $k);
- $value->addError($msg);
- if ($this->throwExceptions) {
- throw new RuntimeException($msg);
- }
-
- break;
- }
-
- $msg = sprintf('Invalid argument %d for method call "%s" of service "%s": argument %d must be defined before. Check your service definition.', 1 + $k, $methodCall[0], $this->currentId, $i);
- $value->addError($msg);
- if ($this->throwExceptions) {
- throw new RuntimeException($msg);
- }
- }
- }
- }
-
- return null;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php
deleted file mode 100644
index 55d911c..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckCircularReferencesPass.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-
-/**
- * Checks your services for circular references.
- *
- * References from method calls are ignored since we might be able to resolve
- * these references depending on the order in which services are called.
- *
- * Circular reference from method calls will only be detected at run-time.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckCircularReferencesPass implements CompilerPassInterface
-{
- private $currentPath;
- private $checkedNodes;
-
- /**
- * Checks the ContainerBuilder object for circular references.
- */
- public function process(ContainerBuilder $container)
- {
- $graph = $container->getCompiler()->getServiceReferenceGraph();
-
- $this->checkedNodes = [];
- foreach ($graph->getNodes() as $id => $node) {
- $this->currentPath = [$id];
-
- $this->checkOutEdges($node->getOutEdges());
- }
- }
-
- /**
- * Checks for circular references.
- *
- * @param ServiceReferenceGraphEdge[] $edges An array of Edges
- *
- * @throws ServiceCircularReferenceException when a circular reference is found
- */
- private function checkOutEdges(array $edges)
- {
- foreach ($edges as $edge) {
- $node = $edge->getDestNode();
- $id = $node->getId();
-
- if (empty($this->checkedNodes[$id])) {
- // Don't check circular references for lazy edges
- if (!$node->getValue() || (!$edge->isLazy() && !$edge->isWeak())) {
- $searchKey = array_search($id, $this->currentPath);
- $this->currentPath[] = $id;
-
- if (false !== $searchKey) {
- throw new ServiceCircularReferenceException($id, \array_slice($this->currentPath, $searchKey));
- }
-
- $this->checkOutEdges($node->getOutEdges());
- }
-
- $this->checkedNodes[$id] = true;
- array_pop($this->currentPath);
- }
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php
deleted file mode 100644
index bb87f47..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckDefinitionValidityPass.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\EnvParameterException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Loader\FileLoader;
-
-/**
- * This pass validates each definition individually only taking the information
- * into account which is contained in the definition itself.
- *
- * Later passes can rely on the following, and specifically do not need to
- * perform these checks themselves:
- *
- * - non synthetic, non abstract services always have a class set
- * - synthetic services are always public
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckDefinitionValidityPass implements CompilerPassInterface
-{
- /**
- * Processes the ContainerBuilder to validate the Definition.
- *
- * @throws RuntimeException When the Definition is invalid
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getDefinitions() as $id => $definition) {
- // synthetic service is public
- if ($definition->isSynthetic() && !$definition->isPublic()) {
- throw new RuntimeException(sprintf('A synthetic service ("%s") must be public.', $id));
- }
-
- // non-synthetic, non-abstract service has class
- if (!$definition->isAbstract() && !$definition->isSynthetic() && !$definition->getClass() && (!$definition->getFactory() || !preg_match(FileLoader::ANONYMOUS_ID_REGEXP, $id))) {
- if ($definition->getFactory()) {
- throw new RuntimeException(sprintf('Please add the class to service "%s" even if it is constructed by a factory since we might need to add method calls based on compile-time checks.', $id));
- }
- if (class_exists($id) || interface_exists($id, false)) {
- if (0 === strpos($id, '\\') && 1 < substr_count($id, '\\')) {
- throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface. Please specify the class attribute explicitly or remove the leading backslash by renaming the service to "%s" to get rid of this error.', $id, substr($id, 1)));
- }
-
- throw new RuntimeException(sprintf('The definition for "%s" has no class attribute, and appears to reference a class or interface in the global namespace. Leaving out the "class" attribute is only allowed for namespaced classes. Please specify the class attribute explicitly to get rid of this error.', $id));
- }
-
- throw new RuntimeException(sprintf('The definition for "%s" has no class. If you intend to inject this service dynamically at runtime, please mark it as synthetic=true. If this is an abstract definition solely used by child definitions, please add abstract=true, otherwise specify a class to get rid of this error.', $id));
- }
-
- // tag attribute values must be scalars
- foreach ($definition->getTags() as $name => $tags) {
- foreach ($tags as $attributes) {
- foreach ($attributes as $attribute => $value) {
- if (!is_scalar($value) && null !== $value) {
- throw new RuntimeException(sprintf('A "tags" attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $id, $name, $attribute));
- }
- }
- }
- }
-
- if ($definition->isPublic() && !$definition->isPrivate()) {
- $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs);
- if (null !== $usedEnvs) {
- throw new EnvParameterException([$resolvedId], null, 'A service name ("%s") cannot contain dynamic values.');
- }
- }
- }
-
- foreach ($container->getAliases() as $id => $alias) {
- if ($alias->isPublic() && !$alias->isPrivate()) {
- $resolvedId = $container->resolveEnvPlaceholders($id, null, $usedEnvs);
- if (null !== $usedEnvs) {
- throw new EnvParameterException([$resolvedId], null, 'An alias name ("%s") cannot contain dynamic values.');
- }
- }
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
deleted file mode 100644
index eef7158..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckExceptionOnInvalidReferenceBehaviorPass.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Checks that all references are pointing to a valid service.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckExceptionOnInvalidReferenceBehaviorPass extends AbstractRecursivePass
-{
- private $serviceLocatorContextIds = [];
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- $this->serviceLocatorContextIds = [];
- foreach ($container->findTaggedServiceIds('container.service_locator_context') as $id => $tags) {
- $this->serviceLocatorContextIds[$id] = $tags[0]['id'];
- $container->getDefinition($id)->clearTag('container.service_locator_context');
- }
-
- try {
- return parent::process($container);
- } finally {
- $this->serviceLocatorContextIds = [];
- }
- }
-
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Reference) {
- return parent::processValue($value, $isRoot);
- }
- if (ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $value->getInvalidBehavior() || $this->container->has($id = (string) $value)) {
- return $value;
- }
-
- $currentId = $this->currentId;
- $graph = $this->container->getCompiler()->getServiceReferenceGraph();
-
- if (isset($this->serviceLocatorContextIds[$currentId])) {
- $currentId = $this->serviceLocatorContextIds[$currentId];
- $locator = $this->container->getDefinition($this->currentId)->getFactory()[0];
-
- foreach ($locator->getArgument(0) as $k => $v) {
- if ($v->getValues()[0] === $value) {
- if ($k !== $id) {
- $currentId = $k.'" in the container provided to "'.$currentId;
- }
- throw new ServiceNotFoundException($id, $currentId);
- }
- }
- }
-
- if ('.' === $currentId[0] && $graph->hasNode($currentId)) {
- foreach ($graph->getNode($currentId)->getInEdges() as $edge) {
- if (!$edge->getValue() instanceof Reference || ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE < $edge->getValue()->getInvalidBehavior()) {
- continue;
- }
- $sourceId = $edge->getSourceNode()->getId();
-
- if ('.' !== $sourceId[0]) {
- $currentId = $sourceId;
- break;
- }
- }
- }
-
- throw new ServiceNotFoundException($id, $currentId);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php
deleted file mode 100644
index 8f2a3bd..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckReferenceValidityPass.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Checks the validity of references.
- *
- * The following checks are performed by this pass:
- * - target definitions are not abstract
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class CheckReferenceValidityPass extends AbstractRecursivePass
-{
- protected function processValue($value, $isRoot = false)
- {
- if ($isRoot && $value instanceof Definition && ($value->isSynthetic() || $value->isAbstract())) {
- return $value;
- }
- if ($value instanceof Reference && $this->container->hasDefinition((string) $value)) {
- $targetDefinition = $this->container->getDefinition((string) $value);
-
- if ($targetDefinition->isAbstract()) {
- throw new RuntimeException(sprintf('The definition "%s" has a reference to an abstract definition "%s". Abstract definitions cannot be the target of references.', $this->currentId, $value));
- }
- }
-
- return parent::processValue($value, $isRoot);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php
deleted file mode 100644
index 0743cbb..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CheckTypeDeclarationsPass.php
+++ /dev/null
@@ -1,245 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
-use Symfony\Component\DependencyInjection\Container;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\EnvNotFoundException;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\InvalidParameterTypeException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\ExpressionLanguage;
-use Symfony\Component\DependencyInjection\Parameter;
-use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ServiceLocator;
-use Symfony\Component\ExpressionLanguage\Expression;
-
-/**
- * Checks whether injected parameters are compatible with type declarations.
- *
- * This pass should be run after all optimization passes.
- *
- * It can be added either:
- * * before removing passes to check all services even if they are not currently used,
- * * after removing passes to check only services are used in the app.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- * @author Julien Maulny <jmaulny@darkmira.fr>
- */
-final class CheckTypeDeclarationsPass extends AbstractRecursivePass
-{
- private const SCALAR_TYPES = ['int', 'float', 'bool', 'string'];
-
- private $autoload;
- private $skippedIds;
-
- private $expressionLanguage;
-
- /**
- * @param bool $autoload Whether services who's class in not loaded should be checked or not.
- * Defaults to false to save loading code during compilation.
- * @param array $skippedIds An array indexed by the service ids to skip
- */
- public function __construct(bool $autoload = false, array $skippedIds = [])
- {
- $this->autoload = $autoload;
- $this->skippedIds = $skippedIds;
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (isset($this->skippedIds[$this->currentId])) {
- return $value;
- }
-
- if (!$value instanceof Definition || $value->hasErrors()) {
- return parent::processValue($value, $isRoot);
- }
-
- if (!$this->autoload && !class_exists($class = $value->getClass(), false) && !interface_exists($class, false)) {
- return parent::processValue($value, $isRoot);
- }
-
- if (ServiceLocator::class === $value->getClass()) {
- return parent::processValue($value, $isRoot);
- }
-
- if ($constructor = $this->getConstructor($value, false)) {
- $this->checkTypeDeclarations($value, $constructor, $value->getArguments());
- }
-
- foreach ($value->getMethodCalls() as $methodCall) {
- try {
- $reflectionMethod = $this->getReflectionMethod($value, $methodCall[0]);
- } catch (RuntimeException $e) {
- if ($value->getFactory()) {
- continue;
- }
-
- throw $e;
- }
-
- $this->checkTypeDeclarations($value, $reflectionMethod, $methodCall[1]);
- }
-
- return parent::processValue($value, $isRoot);
- }
-
- /**
- * @throws InvalidArgumentException When not enough parameters are defined for the method
- */
- private function checkTypeDeclarations(Definition $checkedDefinition, \ReflectionFunctionAbstract $reflectionFunction, array $values): void
- {
- $numberOfRequiredParameters = $reflectionFunction->getNumberOfRequiredParameters();
-
- if (\count($values) < $numberOfRequiredParameters) {
- throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": "%s::%s()" requires %d arguments, %d passed.', $this->currentId, $reflectionFunction->class, $reflectionFunction->name, $numberOfRequiredParameters, \count($values)));
- }
-
- $reflectionParameters = $reflectionFunction->getParameters();
- $checksCount = min($reflectionFunction->getNumberOfParameters(), \count($values));
-
- $envPlaceholderUniquePrefix = $this->container->getParameterBag() instanceof EnvPlaceholderParameterBag ? $this->container->getParameterBag()->getEnvPlaceholderUniquePrefix() : null;
-
- for ($i = 0; $i < $checksCount; ++$i) {
- if (!$reflectionParameters[$i]->hasType() || $reflectionParameters[$i]->isVariadic()) {
- continue;
- }
-
- $this->checkType($checkedDefinition, $values[$i], $reflectionParameters[$i], $envPlaceholderUniquePrefix);
- }
-
- if ($reflectionFunction->isVariadic() && ($lastParameter = end($reflectionParameters))->hasType()) {
- $variadicParameters = \array_slice($values, $lastParameter->getPosition());
-
- foreach ($variadicParameters as $variadicParameter) {
- $this->checkType($checkedDefinition, $variadicParameter, $lastParameter, $envPlaceholderUniquePrefix);
- }
- }
- }
-
- /**
- * @throws InvalidParameterTypeException When a parameter is not compatible with the declared type
- */
- private function checkType(Definition $checkedDefinition, $value, \ReflectionParameter $parameter, ?string $envPlaceholderUniquePrefix): void
- {
- $type = $parameter->getType()->getName();
-
- if ($value instanceof Reference) {
- if (!$this->container->has($value = (string) $value)) {
- return;
- }
-
- if ('service_container' === $value && is_a($type, Container::class, true)) {
- return;
- }
-
- $value = $this->container->findDefinition($value);
- }
-
- if ('self' === $type) {
- $type = $parameter->getDeclaringClass()->getName();
- }
-
- if ('static' === $type) {
- $type = $checkedDefinition->getClass();
- }
-
- if ($value instanceof Definition) {
- $class = $value->getClass();
-
- if (!$class || (!$this->autoload && !class_exists($class, false) && !interface_exists($class, false))) {
- return;
- }
-
- if ('callable' === $type && method_exists($class, '__invoke')) {
- return;
- }
-
- if ('iterable' === $type && is_subclass_of($class, 'Traversable')) {
- return;
- }
-
- if ('object' === $type) {
- return;
- }
-
- if (is_a($class, $type, true)) {
- return;
- }
-
- throw new InvalidParameterTypeException($this->currentId, $class, $parameter);
- }
-
- if ($value instanceof Parameter) {
- $value = $this->container->getParameter($value);
- } elseif ($value instanceof Expression) {
- $value = $this->getExpressionLanguage()->evaluate($value, ['container' => $this->container]);
- } elseif (\is_string($value)) {
- if ('%' === ($value[0] ?? '') && preg_match('/^%([^%]+)%$/', $value, $match)) {
- // Only array parameters are not inlined when dumped.
- $value = [];
- } elseif ($envPlaceholderUniquePrefix && false !== strpos($value, 'env_')) {
- // If the value is an env placeholder that is either mixed with a string or with another env placeholder, then its resolved value will always be a string, so we don't need to resolve it.
- // We don't need to change the value because it is already a string.
- if ('' === preg_replace('/'.$envPlaceholderUniquePrefix.'_\w+_[a-f0-9]{32}/U', '', $value, -1, $c) && 1 === $c) {
- try {
- $value = $this->container->resolveEnvPlaceholders($value, true);
- } catch (EnvNotFoundException | RuntimeException $e) {
- // If an env placeholder cannot be resolved, we skip the validation.
- return;
- }
- }
- }
- }
-
- if (null === $value && $parameter->allowsNull()) {
- return;
- }
-
- if (\in_array($type, self::SCALAR_TYPES, true) && is_scalar($value)) {
- return;
- }
-
- if ('callable' === $type && \is_array($value) && isset($value[0]) && ($value[0] instanceof Reference || $value[0] instanceof Definition)) {
- return;
- }
-
- if ('iterable' === $type && (\is_array($value) || $value instanceof \Traversable || $value instanceof IteratorArgument)) {
- return;
- }
-
- if ('Traversable' === $type && ($value instanceof \Traversable || $value instanceof IteratorArgument)) {
- return;
- }
-
- $checkFunction = sprintf('is_%s', $parameter->getType()->getName());
-
- if (!$parameter->getType()->isBuiltin() || !$checkFunction($value)) {
- throw new InvalidParameterTypeException($this->currentId, \is_object($value) ? \get_class($value) : \gettype($value), $parameter);
- }
- }
-
- private function getExpressionLanguage(): ExpressionLanguage
- {
- if (null === $this->expressionLanguage) {
- $this->expressionLanguage = new ExpressionLanguage(null, $this->container->getExpressionLanguageProviders());
- }
-
- return $this->expressionLanguage;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php
deleted file mode 100644
index 14dedf0..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/Compiler.php
+++ /dev/null
@@ -1,119 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\EnvParameterException;
-
-/**
- * This class is used to remove circular dependencies between individual passes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class Compiler
-{
- private $passConfig;
- private $log = [];
- private $serviceReferenceGraph;
-
- public function __construct()
- {
- $this->passConfig = new PassConfig();
- $this->serviceReferenceGraph = new ServiceReferenceGraph();
- }
-
- /**
- * Returns the PassConfig.
- *
- * @return PassConfig The PassConfig instance
- */
- public function getPassConfig()
- {
- return $this->passConfig;
- }
-
- /**
- * Returns the ServiceReferenceGraph.
- *
- * @return ServiceReferenceGraph The ServiceReferenceGraph instance
- */
- public function getServiceReferenceGraph()
- {
- return $this->serviceReferenceGraph;
- }
-
- /**
- * Adds a pass to the PassConfig.
- *
- * @param string $type The type of the pass
- * @param int $priority Used to sort the passes
- */
- public function addPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0)
- {
- $this->passConfig->addPass($pass, $type, $priority);
- }
-
- /**
- * @final
- */
- public function log(CompilerPassInterface $pass, string $message)
- {
- if (false !== strpos($message, "\n")) {
- $message = str_replace("\n", "\n".\get_class($pass).': ', trim($message));
- }
-
- $this->log[] = \get_class($pass).': '.$message;
- }
-
- /**
- * Returns the log.
- *
- * @return array Log array
- */
- public function getLog()
- {
- return $this->log;
- }
-
- /**
- * Run the Compiler and process all Passes.
- */
- public function compile(ContainerBuilder $container)
- {
- try {
- foreach ($this->passConfig->getPasses() as $pass) {
- $pass->process($container);
- }
- } catch (\Exception $e) {
- $usedEnvs = [];
- $prev = $e;
-
- do {
- $msg = $prev->getMessage();
-
- if ($msg !== $resolvedMsg = $container->resolveEnvPlaceholders($msg, null, $usedEnvs)) {
- $r = new \ReflectionProperty($prev, 'message');
- $r->setAccessible(true);
- $r->setValue($prev, $resolvedMsg);
- }
- } while ($prev = $prev->getPrevious());
-
- if ($usedEnvs) {
- $e = new EnvParameterException($usedEnvs, $e);
- }
-
- throw $e;
- } finally {
- $this->getServiceReferenceGraph()->clear();
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php
deleted file mode 100644
index 3085006..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/CompilerPassInterface.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Interface that must be implemented by compilation passes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-interface CompilerPassInterface
-{
- /**
- * You can modify the container here before it is dumped to PHP code.
- */
- public function process(ContainerBuilder $container);
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php
deleted file mode 100644
index da909ae..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DecoratorServicePass.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Overwrites a service but keeps the overridden one.
- *
- * @author Christophe Coevoet <stof@notk.org>
- * @author Fabien Potencier <fabien@symfony.com>
- * @author Diego Saint Esteben <diego@saintesteben.me>
- */
-class DecoratorServicePass implements CompilerPassInterface
-{
- public function process(ContainerBuilder $container)
- {
- $definitions = new \SplPriorityQueue();
- $order = PHP_INT_MAX;
-
- foreach ($container->getDefinitions() as $id => $definition) {
- if (!$decorated = $definition->getDecoratedService()) {
- continue;
- }
- $definitions->insert([$id, $definition], [$decorated[2], --$order]);
- }
- $decoratingDefinitions = [];
-
- foreach ($definitions as list($id, $definition)) {
- $decoratedService = $definition->getDecoratedService();
- list($inner, $renamedId) = $decoratedService;
- $invalidBehavior = $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
-
- $definition->setDecoratedService(null);
-
- if (!$renamedId) {
- $renamedId = $id.'.inner';
- }
- $definition->innerServiceId = $renamedId;
- $definition->decorationOnInvalid = $invalidBehavior;
-
- // we create a new alias/service for the service we are replacing
- // to be able to reference it in the new one
- if ($container->hasAlias($inner)) {
- $alias = $container->getAlias($inner);
- $public = $alias->isPublic();
- $private = $alias->isPrivate();
- $container->setAlias($renamedId, new Alias((string) $alias, false));
- } elseif ($container->hasDefinition($inner)) {
- $decoratedDefinition = $container->getDefinition($inner);
- $public = $decoratedDefinition->isPublic();
- $private = $decoratedDefinition->isPrivate();
- $decoratedDefinition->setPublic(false);
- $container->setDefinition($renamedId, $decoratedDefinition);
- $decoratingDefinitions[$inner] = $decoratedDefinition;
- } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) {
- $container->removeDefinition($id);
- continue;
- } elseif (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) {
- $public = $definition->isPublic();
- $private = $definition->isPrivate();
- } else {
- throw new ServiceNotFoundException($inner, $id);
- }
-
- if (isset($decoratingDefinitions[$inner])) {
- $decoratingDefinition = $decoratingDefinitions[$inner];
- $definition->setTags(array_merge($decoratingDefinition->getTags(), $definition->getTags()));
- $decoratingDefinition->setTags([]);
- $decoratingDefinitions[$inner] = $definition;
- }
-
- $container->setAlias($inner, $id)->setPublic($public)->setPrivate($private);
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php
deleted file mode 100644
index 5ee0ff1..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/DefinitionErrorExceptionPass.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Throws an exception for any Definitions that have errors and still exist.
- *
- * @author Ryan Weaver <ryan@knpuniversity.com>
- */
-class DefinitionErrorExceptionPass extends AbstractRecursivePass
-{
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Definition || !$value->hasErrors()) {
- return parent::processValue($value, $isRoot);
- }
-
- if ($isRoot && !$value->isPublic()) {
- $graph = $this->container->getCompiler()->getServiceReferenceGraph();
- $runtimeException = false;
- foreach ($graph->getNode($this->currentId)->getInEdges() as $edge) {
- if (!$edge->getValue() instanceof Reference || ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE !== $edge->getValue()->getInvalidBehavior()) {
- $runtimeException = false;
- break;
- }
- $runtimeException = true;
- }
- if ($runtimeException) {
- return parent::processValue($value, $isRoot);
- }
- }
-
- // only show the first error so the user can focus on it
- $errors = $value->getErrors();
- $message = reset($errors);
-
- throw new RuntimeException($message);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php
deleted file mode 100644
index 27e5048..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ExtensionCompilerPass.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * A pass to automatically process extensions if they implement
- * CompilerPassInterface.
- *
- * @author Wouter J <wouter@wouterj.nl>
- */
-class ExtensionCompilerPass implements CompilerPassInterface
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getExtensions() as $extension) {
- if (!$extension instanceof CompilerPassInterface) {
- continue;
- }
-
- $extension->process($container);
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php
deleted file mode 100644
index ac3b4fe..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/InlineServiceDefinitionsPass.php
+++ /dev/null
@@ -1,231 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\ArgumentInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Inline service definitions where this is possible.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class InlineServiceDefinitionsPass extends AbstractRecursivePass implements RepeatablePassInterface
-{
- private $analyzingPass;
- private $repeatedPass;
- private $cloningIds = [];
- private $connectedIds = [];
- private $notInlinedIds = [];
- private $inlinedIds = [];
- private $graph;
-
- public function __construct(AnalyzeServiceReferencesPass $analyzingPass = null)
- {
- $this->analyzingPass = $analyzingPass;
- }
-
- /**
- * {@inheritdoc}
- */
- public function setRepeatedPass(RepeatedPass $repeatedPass)
- {
- @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
- $this->repeatedPass = $repeatedPass;
- }
-
- public function process(ContainerBuilder $container)
- {
- $this->container = $container;
- if ($this->analyzingPass) {
- $analyzedContainer = new ContainerBuilder();
- $analyzedContainer->setAliases($container->getAliases());
- $analyzedContainer->setDefinitions($container->getDefinitions());
- foreach ($container->getExpressionLanguageProviders() as $provider) {
- $analyzedContainer->addExpressionLanguageProvider($provider);
- }
- } else {
- $analyzedContainer = $container;
- }
- try {
- $remainingInlinedIds = [];
- $this->connectedIds = $this->notInlinedIds = $container->getDefinitions();
- do {
- if ($this->analyzingPass) {
- $analyzedContainer->setDefinitions(array_intersect_key($analyzedContainer->getDefinitions(), $this->connectedIds));
- $this->analyzingPass->process($analyzedContainer);
- }
- $this->graph = $analyzedContainer->getCompiler()->getServiceReferenceGraph();
- $notInlinedIds = $this->notInlinedIds;
- $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = [];
-
- foreach ($analyzedContainer->getDefinitions() as $id => $definition) {
- if (!$this->graph->hasNode($id)) {
- continue;
- }
- foreach ($this->graph->getNode($id)->getOutEdges() as $edge) {
- if (isset($notInlinedIds[$edge->getSourceNode()->getId()])) {
- $this->currentId = $id;
- $this->processValue($definition, true);
- break;
- }
- }
- }
-
- foreach ($this->inlinedIds as $id => $isPublicOrNotShared) {
- if ($isPublicOrNotShared) {
- $remainingInlinedIds[$id] = $id;
- } else {
- $container->removeDefinition($id);
- $analyzedContainer->removeDefinition($id);
- }
- }
- } while ($this->inlinedIds && $this->analyzingPass);
-
- if ($this->inlinedIds && $this->repeatedPass) {
- $this->repeatedPass->setRepeat();
- }
-
- foreach ($remainingInlinedIds as $id) {
- $definition = $container->getDefinition($id);
-
- if (!$definition->isShared() && !$definition->isPublic()) {
- $container->removeDefinition($id);
- }
- }
- } finally {
- $this->container = null;
- $this->connectedIds = $this->notInlinedIds = $this->inlinedIds = [];
- $this->graph = null;
- }
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof ArgumentInterface) {
- // Reference found in ArgumentInterface::getValues() are not inlineable
- return $value;
- }
-
- if ($value instanceof Definition && $this->cloningIds) {
- if ($value->isShared()) {
- return $value;
- }
- $value = clone $value;
- }
-
- if (!$value instanceof Reference) {
- return parent::processValue($value, $isRoot);
- } elseif (!$this->container->hasDefinition($id = (string) $value)) {
- return $value;
- }
-
- $definition = $this->container->getDefinition($id);
-
- if (!$this->isInlineableDefinition($id, $definition)) {
- return $value;
- }
-
- $this->container->log($this, sprintf('Inlined service "%s" to "%s".', $id, $this->currentId));
- $this->inlinedIds[$id] = $definition->isPublic() || !$definition->isShared();
- $this->notInlinedIds[$this->currentId] = true;
-
- if ($definition->isShared()) {
- return $definition;
- }
-
- if (isset($this->cloningIds[$id])) {
- $ids = array_keys($this->cloningIds);
- $ids[] = $id;
-
- throw new ServiceCircularReferenceException($id, \array_slice($ids, array_search($id, $ids)));
- }
-
- $this->cloningIds[$id] = true;
- try {
- return $this->processValue($definition);
- } finally {
- unset($this->cloningIds[$id]);
- }
- }
-
- /**
- * Checks if the definition is inlineable.
- */
- private function isInlineableDefinition(string $id, Definition $definition): bool
- {
- if ($definition->hasErrors() || $definition->isDeprecated() || $definition->isLazy() || $definition->isSynthetic()) {
- return false;
- }
-
- if (!$definition->isShared()) {
- if (!$this->graph->hasNode($id)) {
- return true;
- }
-
- foreach ($this->graph->getNode($id)->getInEdges() as $edge) {
- $srcId = $edge->getSourceNode()->getId();
- $this->connectedIds[$srcId] = true;
- if ($edge->isWeak() || $edge->isLazy()) {
- return false;
- }
- }
-
- return true;
- }
-
- if ($definition->isPublic()) {
- return false;
- }
-
- if (!$this->graph->hasNode($id)) {
- return true;
- }
-
- if ($this->currentId == $id) {
- return false;
- }
- $this->connectedIds[$id] = true;
-
- $srcIds = [];
- $srcCount = 0;
- $isReferencedByConstructor = false;
- foreach ($this->graph->getNode($id)->getInEdges() as $edge) {
- $isReferencedByConstructor = $isReferencedByConstructor || $edge->isReferencedByConstructor();
- $srcId = $edge->getSourceNode()->getId();
- $this->connectedIds[$srcId] = true;
- if ($edge->isWeak() || $edge->isLazy()) {
- return false;
- }
- $srcIds[$srcId] = true;
- ++$srcCount;
- }
-
- if (1 !== \count($srcIds)) {
- $this->notInlinedIds[$id] = true;
-
- return false;
- }
-
- if ($srcCount > 1 && \is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) {
- return false;
- }
-
- return $this->container->getDefinition($srcId)->isShared();
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php
deleted file mode 100644
index 264dd80..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/MergeExtensionConfigurationPass.php
+++ /dev/null
@@ -1,220 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\Config\Definition\BaseNode;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface;
-use Symfony\Component\DependencyInjection\Extension\Extension;
-use Symfony\Component\DependencyInjection\Extension\ExtensionInterface;
-use Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface;
-use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
-
-/**
- * Merges extension configs into the container builder.
- *
- * @author Fabien Potencier <fabien@symfony.com>
- */
-class MergeExtensionConfigurationPass implements CompilerPassInterface
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- $parameters = $container->getParameterBag()->all();
- $definitions = $container->getDefinitions();
- $aliases = $container->getAliases();
- $exprLangProviders = $container->getExpressionLanguageProviders();
- $configAvailable = class_exists(BaseNode::class);
-
- foreach ($container->getExtensions() as $extension) {
- if ($extension instanceof PrependExtensionInterface) {
- $extension->prepend($container);
- }
- }
-
- foreach ($container->getExtensions() as $name => $extension) {
- if (!$config = $container->getExtensionConfig($name)) {
- // this extension was not called
- continue;
- }
- $resolvingBag = $container->getParameterBag();
- if ($resolvingBag instanceof EnvPlaceholderParameterBag && $extension instanceof Extension) {
- // create a dedicated bag so that we can track env vars per-extension
- $resolvingBag = new MergeExtensionConfigurationParameterBag($resolvingBag);
- if ($configAvailable) {
- BaseNode::setPlaceholderUniquePrefix($resolvingBag->getEnvPlaceholderUniquePrefix());
- }
- }
- $config = $resolvingBag->resolveValue($config);
-
- try {
- $tmpContainer = new MergeExtensionConfigurationContainerBuilder($extension, $resolvingBag);
- $tmpContainer->setResourceTracking($container->isTrackingResources());
- $tmpContainer->addObjectResource($extension);
- if ($extension instanceof ConfigurationExtensionInterface && null !== $configuration = $extension->getConfiguration($config, $tmpContainer)) {
- $tmpContainer->addObjectResource($configuration);
- }
-
- foreach ($exprLangProviders as $provider) {
- $tmpContainer->addExpressionLanguageProvider($provider);
- }
-
- $extension->load($config, $tmpContainer);
- } catch (\Exception $e) {
- if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) {
- $container->getParameterBag()->mergeEnvPlaceholders($resolvingBag);
- }
-
- throw $e;
- } finally {
- if ($configAvailable) {
- BaseNode::resetPlaceholders();
- }
- }
-
- if ($resolvingBag instanceof MergeExtensionConfigurationParameterBag) {
- // don't keep track of env vars that are *overridden* when configs are merged
- $resolvingBag->freezeAfterProcessing($extension, $tmpContainer);
- }
-
- $container->merge($tmpContainer);
- $container->getParameterBag()->add($parameters);
- }
-
- $container->addDefinitions($definitions);
- $container->addAliases($aliases);
- }
-}
-
-/**
- * @internal
- */
-class MergeExtensionConfigurationParameterBag extends EnvPlaceholderParameterBag
-{
- private $processedEnvPlaceholders;
-
- public function __construct(parent $parameterBag)
- {
- parent::__construct($parameterBag->all());
- $this->mergeEnvPlaceholders($parameterBag);
- }
-
- public function freezeAfterProcessing(Extension $extension, ContainerBuilder $container)
- {
- if (!$config = $extension->getProcessedConfigs()) {
- // Extension::processConfiguration() wasn't called, we cannot know how configs were merged
- return;
- }
- $this->processedEnvPlaceholders = [];
-
- // serialize config and container to catch env vars nested in object graphs
- $config = serialize($config).serialize($container->getDefinitions()).serialize($container->getAliases()).serialize($container->getParameterBag()->all());
-
- foreach (parent::getEnvPlaceholders() as $env => $placeholders) {
- foreach ($placeholders as $placeholder) {
- if (false !== stripos($config, $placeholder)) {
- $this->processedEnvPlaceholders[$env] = $placeholders;
- break;
- }
- }
- }
- }
-
- /**
- * {@inheritdoc}
- */
- public function getEnvPlaceholders(): array
- {
- return null !== $this->processedEnvPlaceholders ? $this->processedEnvPlaceholders : parent::getEnvPlaceholders();
- }
-
- public function getUnusedEnvPlaceholders(): array
- {
- return null === $this->processedEnvPlaceholders ? [] : array_diff_key(parent::getEnvPlaceholders(), $this->processedEnvPlaceholders);
- }
-}
-
-/**
- * A container builder preventing using methods that wouldn't have any effect from extensions.
- *
- * @internal
- */
-class MergeExtensionConfigurationContainerBuilder extends ContainerBuilder
-{
- private $extensionClass;
-
- public function __construct(ExtensionInterface $extension, ParameterBagInterface $parameterBag = null)
- {
- parent::__construct($parameterBag);
-
- $this->extensionClass = \get_class($extension);
- }
-
- /**
- * {@inheritdoc}
- */
- public function addCompilerPass(CompilerPassInterface $pass, $type = PassConfig::TYPE_BEFORE_OPTIMIZATION, int $priority = 0): self
- {
- throw new LogicException(sprintf('You cannot add compiler pass "%s" from extension "%s". Compiler passes must be registered before the container is compiled.', \get_class($pass), $this->extensionClass));
- }
-
- /**
- * {@inheritdoc}
- */
- public function registerExtension(ExtensionInterface $extension)
- {
- throw new LogicException(sprintf('You cannot register extension "%s" from "%s". Extensions must be registered before the container is compiled.', \get_class($extension), $this->extensionClass));
- }
-
- /**
- * {@inheritdoc}
- */
- public function compile(bool $resolveEnvPlaceholders = false)
- {
- throw new LogicException(sprintf('Cannot compile the container in extension "%s".', $this->extensionClass));
- }
-
- /**
- * {@inheritdoc}
- */
- public function resolveEnvPlaceholders($value, $format = null, array &$usedEnvs = null)
- {
- if (true !== $format || !\is_string($value)) {
- return parent::resolveEnvPlaceholders($value, $format, $usedEnvs);
- }
-
- $bag = $this->getParameterBag();
- $value = $bag->resolveValue($value);
-
- if (!$bag instanceof EnvPlaceholderParameterBag) {
- return parent::resolveEnvPlaceholders($value, $format, $usedEnvs);
- }
-
- foreach ($bag->getEnvPlaceholders() as $env => $placeholders) {
- if (false === strpos($env, ':')) {
- continue;
- }
- foreach ($placeholders as $placeholder) {
- if (false !== stripos($value, $placeholder)) {
- throw new RuntimeException(sprintf('Using a cast in "env(%s)" is incompatible with resolution at compile time in "%s". The logic in the extension should be moved to a compiler pass, or an env parameter with no cast should be used instead.', $env, $this->extensionClass));
- }
- }
- }
-
- return parent::resolveEnvPlaceholders($value, $format, $usedEnvs);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php
deleted file mode 100644
index 8cc328e..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PassConfig.php
+++ /dev/null
@@ -1,269 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * Compiler Pass Configuration.
- *
- * This class has a default configuration embedded.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class PassConfig
-{
- const TYPE_AFTER_REMOVING = 'afterRemoving';
- const TYPE_BEFORE_OPTIMIZATION = 'beforeOptimization';
- const TYPE_BEFORE_REMOVING = 'beforeRemoving';
- const TYPE_OPTIMIZE = 'optimization';
- const TYPE_REMOVE = 'removing';
-
- private $mergePass;
- private $afterRemovingPasses = [];
- private $beforeOptimizationPasses = [];
- private $beforeRemovingPasses = [];
- private $optimizationPasses;
- private $removingPasses;
-
- public function __construct()
- {
- $this->mergePass = new MergeExtensionConfigurationPass();
-
- $this->beforeOptimizationPasses = [
- 100 => [
- new ResolveClassPass(),
- new ResolveInstanceofConditionalsPass(),
- new RegisterEnvVarProcessorsPass(),
- ],
- -1000 => [new ExtensionCompilerPass()],
- ];
-
- $this->optimizationPasses = [[
- new ValidateEnvPlaceholdersPass(),
- new ResolveChildDefinitionsPass(),
- new RegisterServiceSubscribersPass(),
- new ResolveParameterPlaceHoldersPass(false),
- new ResolveFactoryClassPass(),
- new ResolveNamedArgumentsPass(),
- new AutowireRequiredMethodsPass(),
- new ResolveBindingsPass(),
- new ServiceLocatorTagPass(),
- new DecoratorServicePass(),
- new CheckDefinitionValidityPass(),
- new AutowirePass(false),
- new ResolveTaggedIteratorArgumentPass(),
- new ResolveServiceSubscribersPass(),
- new ResolveReferencesToAliasesPass(),
- new ResolveInvalidReferencesPass(),
- new AnalyzeServiceReferencesPass(true),
- new CheckCircularReferencesPass(),
- new CheckReferenceValidityPass(),
- new CheckArgumentsValidityPass(false),
- ]];
-
- $this->beforeRemovingPasses = [
- -100 => [
- new ResolvePrivatesPass(),
- ],
- ];
-
- $this->removingPasses = [[
- new RemovePrivateAliasesPass(),
- new ReplaceAliasByActualDefinitionPass(),
- new RemoveAbstractDefinitionsPass(),
- new RemoveUnusedDefinitionsPass(),
- new InlineServiceDefinitionsPass(new AnalyzeServiceReferencesPass()),
- new AnalyzeServiceReferencesPass(),
- new DefinitionErrorExceptionPass(),
- ]];
-
- $this->afterRemovingPasses = [[
- new CheckExceptionOnInvalidReferenceBehaviorPass(),
- new ResolveHotPathPass(),
- ]];
- }
-
- /**
- * Returns all passes in order to be processed.
- *
- * @return CompilerPassInterface[]
- */
- public function getPasses()
- {
- return array_merge(
- [$this->mergePass],
- $this->getBeforeOptimizationPasses(),
- $this->getOptimizationPasses(),
- $this->getBeforeRemovingPasses(),
- $this->getRemovingPasses(),
- $this->getAfterRemovingPasses()
- );
- }
-
- /**
- * Adds a pass.
- *
- * @param string $type The pass type
- * @param int $priority Used to sort the passes
- *
- * @throws InvalidArgumentException when a pass type doesn't exist
- */
- public function addPass(CompilerPassInterface $pass, $type = self::TYPE_BEFORE_OPTIMIZATION, int $priority = 0)
- {
- $property = $type.'Passes';
- if (!isset($this->$property)) {
- throw new InvalidArgumentException(sprintf('Invalid type "%s".', $type));
- }
-
- $passes = &$this->$property;
-
- if (!isset($passes[$priority])) {
- $passes[$priority] = [];
- }
- $passes[$priority][] = $pass;
- }
-
- /**
- * Gets all passes for the AfterRemoving pass.
- *
- * @return CompilerPassInterface[]
- */
- public function getAfterRemovingPasses()
- {
- return $this->sortPasses($this->afterRemovingPasses);
- }
-
- /**
- * Gets all passes for the BeforeOptimization pass.
- *
- * @return CompilerPassInterface[]
- */
- public function getBeforeOptimizationPasses()
- {
- return $this->sortPasses($this->beforeOptimizationPasses);
- }
-
- /**
- * Gets all passes for the BeforeRemoving pass.
- *
- * @return CompilerPassInterface[]
- */
- public function getBeforeRemovingPasses()
- {
- return $this->sortPasses($this->beforeRemovingPasses);
- }
-
- /**
- * Gets all passes for the Optimization pass.
- *
- * @return CompilerPassInterface[]
- */
- public function getOptimizationPasses()
- {
- return $this->sortPasses($this->optimizationPasses);
- }
-
- /**
- * Gets all passes for the Removing pass.
- *
- * @return CompilerPassInterface[]
- */
- public function getRemovingPasses()
- {
- return $this->sortPasses($this->removingPasses);
- }
-
- /**
- * Gets the Merge pass.
- *
- * @return CompilerPassInterface
- */
- public function getMergePass()
- {
- return $this->mergePass;
- }
-
- public function setMergePass(CompilerPassInterface $pass)
- {
- $this->mergePass = $pass;
- }
-
- /**
- * Sets the AfterRemoving passes.
- *
- * @param CompilerPassInterface[] $passes
- */
- public function setAfterRemovingPasses(array $passes)
- {
- $this->afterRemovingPasses = [$passes];
- }
-
- /**
- * Sets the BeforeOptimization passes.
- *
- * @param CompilerPassInterface[] $passes
- */
- public function setBeforeOptimizationPasses(array $passes)
- {
- $this->beforeOptimizationPasses = [$passes];
- }
-
- /**
- * Sets the BeforeRemoving passes.
- *
- * @param CompilerPassInterface[] $passes
- */
- public function setBeforeRemovingPasses(array $passes)
- {
- $this->beforeRemovingPasses = [$passes];
- }
-
- /**
- * Sets the Optimization passes.
- *
- * @param CompilerPassInterface[] $passes
- */
- public function setOptimizationPasses(array $passes)
- {
- $this->optimizationPasses = [$passes];
- }
-
- /**
- * Sets the Removing passes.
- *
- * @param CompilerPassInterface[] $passes
- */
- public function setRemovingPasses(array $passes)
- {
- $this->removingPasses = [$passes];
- }
-
- /**
- * Sort passes by priority.
- *
- * @param array $passes CompilerPassInterface instances with their priority as key
- *
- * @return CompilerPassInterface[]
- */
- private function sortPasses(array $passes): array
- {
- if (0 === \count($passes)) {
- return [];
- }
-
- krsort($passes);
-
- // Flatten the array
- return array_merge(...$passes);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php
deleted file mode 100644
index 9b3760b..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/PriorityTaggedServiceTrait.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\TypedReference;
-
-/**
- * Trait that allows a generic method to find and sort service by priority option in the tag.
- *
- * @author Iltar van der Berg <kjarli@gmail.com>
- */
-trait PriorityTaggedServiceTrait
-{
- /**
- * Finds all services with the given tag name and order them by their priority.
- *
- * The order of additions must be respected for services having the same priority,
- * and knowing that the \SplPriorityQueue class does not respect the FIFO method,
- * we should not use that class.
- *
- * @see https://bugs.php.net/53710
- * @see https://bugs.php.net/60926
- *
- * @param string|TaggedIteratorArgument $tagName
- *
- * @return Reference[]
- */
- private function findAndSortTaggedServices($tagName, ContainerBuilder $container): array
- {
- $indexAttribute = $defaultIndexMethod = $needsIndexes = $defaultPriorityMethod = null;
-
- if ($tagName instanceof TaggedIteratorArgument) {
- $indexAttribute = $tagName->getIndexAttribute();
- $defaultIndexMethod = $tagName->getDefaultIndexMethod();
- $needsIndexes = $tagName->needsIndexes();
- $defaultPriorityMethod = $tagName->getDefaultPriorityMethod();
- $tagName = $tagName->getTag();
- }
-
- $services = [];
-
- foreach ($container->findTaggedServiceIds($tagName, true) as $serviceId => $attributes) {
- $class = $r = null;
- $priority = 0;
- if (isset($attributes[0]['priority'])) {
- $priority = $attributes[0]['priority'];
- } elseif ($defaultPriorityMethod) {
- $class = $container->getDefinition($serviceId)->getClass();
- $class = $container->getParameterBag()->resolveValue($class) ?: null;
-
- if (($r = $container->getReflectionClass($class)) && $r->hasMethod($defaultPriorityMethod)) {
- if (!($rm = $r->getMethod($defaultPriorityMethod))->isStatic()) {
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be static: tag "%s" on service "%s".', $class, $defaultPriorityMethod, $tagName, $serviceId));
- }
-
- if (!$rm->isPublic()) {
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be public: tag "%s" on service "%s".', $class, $defaultPriorityMethod, $tagName, $serviceId));
- }
-
- $priority = $rm->invoke(null);
-
- if (!\is_int($priority)) {
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" should return an integer, got %s: tag "%s" on service "%s".', $class, $defaultPriorityMethod, \gettype($priority), $tagName, $serviceId));
- }
- }
- }
-
- if (null === $indexAttribute && !$needsIndexes) {
- $services[$priority][] = new Reference($serviceId);
-
- continue;
- }
-
- if (!$class) {
- $class = $container->getDefinition($serviceId)->getClass();
- $class = $container->getParameterBag()->resolveValue($class) ?: null;
- }
-
- if (null !== $indexAttribute && isset($attributes[0][$indexAttribute])) {
- $services[$priority][$attributes[0][$indexAttribute]] = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $attributes[0][$indexAttribute]);
-
- continue;
- }
-
- if (!$r && !$r = $container->getReflectionClass($class)) {
- throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $serviceId));
- }
-
- $class = $r->name;
-
- if (!$r->hasMethod($defaultIndexMethod)) {
- if ($needsIndexes) {
- $services[$priority][$serviceId] = new TypedReference($serviceId, $class);
-
- continue;
- }
-
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" not found: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, $tagName, $serviceId, $indexAttribute));
- }
-
- if (!($rm = $r->getMethod($defaultIndexMethod))->isStatic()) {
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be static: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, $tagName, $serviceId, $indexAttribute));
- }
-
- if (!$rm->isPublic()) {
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" should be public: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, $tagName, $serviceId, $indexAttribute));
- }
-
- $key = $rm->invoke(null);
-
- if (!\is_string($key)) {
- throw new InvalidArgumentException(sprintf('Method "%s::%s()" should return a string, got %s: tag "%s" on service "%s" is missing "%s" attribute.', $class, $defaultIndexMethod, \gettype($key), $tagName, $serviceId, $indexAttribute));
- }
-
- $services[$priority][$key] = new TypedReference($serviceId, $class, ContainerBuilder::EXCEPTION_ON_INVALID_REFERENCE, $key);
- }
-
- if ($services) {
- krsort($services);
- $services = array_merge(...$services);
- }
-
- return $services;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php
deleted file mode 100644
index a9a133b..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterEnvVarProcessorsPass.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\EnvVarProcessor;
-use Symfony\Component\DependencyInjection\EnvVarProcessorInterface;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Creates the container.env_var_processors_locator service.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class RegisterEnvVarProcessorsPass implements CompilerPassInterface
-{
- private static $allowedTypes = ['array', 'bool', 'float', 'int', 'string'];
-
- public function process(ContainerBuilder $container)
- {
- $bag = $container->getParameterBag();
- $types = [];
- $processors = [];
- foreach ($container->findTaggedServiceIds('container.env_var_processor') as $id => $tags) {
- if (!$r = $container->getReflectionClass($class = $container->getDefinition($id)->getClass())) {
- throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $id));
- } elseif (!$r->isSubclassOf(EnvVarProcessorInterface::class)) {
- throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $id, EnvVarProcessorInterface::class));
- }
- foreach ($class::getProvidedTypes() as $prefix => $type) {
- $processors[$prefix] = new Reference($id);
- $types[$prefix] = self::validateProvidedTypes($type, $class);
- }
- }
-
- if ($bag instanceof EnvPlaceholderParameterBag) {
- foreach (EnvVarProcessor::getProvidedTypes() as $prefix => $type) {
- if (!isset($types[$prefix])) {
- $types[$prefix] = self::validateProvidedTypes($type, EnvVarProcessor::class);
- }
- }
- $bag->setProvidedTypes($types);
- }
-
- if ($processors) {
- $container->setAlias('container.env_var_processors_locator', (string) ServiceLocatorTagPass::register($container, $processors))
- ->setPublic(true)
- ;
- }
- }
-
- private static function validateProvidedTypes(string $types, string $class): array
- {
- $types = explode('|', $types);
-
- foreach ($types as $type) {
- if (!\in_array($type, self::$allowedTypes)) {
- throw new InvalidArgumentException(sprintf('Invalid type "%s" returned by "%s::getProvidedTypes()", expected one of "%s".', $type, $class, implode('", "', self::$allowedTypes)));
- }
- }
-
- return $types;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php
deleted file mode 100644
index 571eab3..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterReverseContainerPass.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class RegisterReverseContainerPass implements CompilerPassInterface
-{
- private $beforeRemoving;
- private $serviceId;
- private $tagName;
-
- public function __construct(bool $beforeRemoving, string $serviceId = 'reverse_container', string $tagName = 'container.reversible')
- {
- $this->beforeRemoving = $beforeRemoving;
- $this->serviceId = $serviceId;
- $this->tagName = $tagName;
- }
-
- public function process(ContainerBuilder $container)
- {
- if (!$container->hasDefinition($this->serviceId)) {
- return;
- }
-
- $refType = $this->beforeRemoving ? ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE : ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
- $services = [];
- foreach ($container->findTaggedServiceIds($this->tagName) as $id => $tags) {
- $services[$id] = new Reference($id, $refType);
- }
-
- if ($this->beforeRemoving) {
- // prevent inlining of the reverse container
- $services[$this->serviceId] = new Reference($this->serviceId, $refType);
- }
- $locator = $container->getDefinition($this->serviceId)->getArgument(1);
-
- if ($locator instanceof Reference) {
- $locator = $container->getDefinition((string) $locator);
- }
- if ($locator instanceof Definition) {
- foreach ($services as $id => $ref) {
- $services[$id] = new ServiceClosureArgument($ref);
- }
- $locator->replaceArgument(0, $services);
- } else {
- $locator->setValues($services);
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php
deleted file mode 100644
index 14bf000..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RegisterServiceSubscribersPass.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Psr\Container\ContainerInterface as PsrContainerInterface;
-use Symfony\Component\DependencyInjection\Argument\BoundArgument;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\TypedReference;
-use Symfony\Contracts\Service\ServiceProviderInterface;
-use Symfony\Contracts\Service\ServiceSubscriberInterface;
-
-/**
- * Compiler pass to register tagged services that require a service locator.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class RegisterServiceSubscribersPass extends AbstractRecursivePass
-{
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Definition || $value->isAbstract() || $value->isSynthetic() || !$value->hasTag('container.service_subscriber')) {
- return parent::processValue($value, $isRoot);
- }
-
- $serviceMap = [];
- $autowire = $value->isAutowired();
-
- foreach ($value->getTag('container.service_subscriber') as $attributes) {
- if (!$attributes) {
- $autowire = true;
- continue;
- }
- ksort($attributes);
- if ([] !== array_diff(array_keys($attributes), ['id', 'key'])) {
- throw new InvalidArgumentException(sprintf('The "container.service_subscriber" tag accepts only the "key" and "id" attributes, "%s" given for service "%s".', implode('", "', array_keys($attributes)), $this->currentId));
- }
- if (!\array_key_exists('id', $attributes)) {
- throw new InvalidArgumentException(sprintf('Missing "id" attribute on "container.service_subscriber" tag with key="%s" for service "%s".', $attributes['key'], $this->currentId));
- }
- if (!\array_key_exists('key', $attributes)) {
- $attributes['key'] = $attributes['id'];
- }
- if (isset($serviceMap[$attributes['key']])) {
- continue;
- }
- $serviceMap[$attributes['key']] = new Reference($attributes['id']);
- }
- $class = $value->getClass();
-
- if (!$r = $this->container->getReflectionClass($class)) {
- throw new InvalidArgumentException(sprintf('Class "%s" used for service "%s" cannot be found.', $class, $this->currentId));
- }
- if (!$r->isSubclassOf(ServiceSubscriberInterface::class)) {
- throw new InvalidArgumentException(sprintf('Service "%s" must implement interface "%s".', $this->currentId, ServiceSubscriberInterface::class));
- }
- $class = $r->name;
-
- $subscriberMap = [];
-
- foreach ($class::getSubscribedServices() as $key => $type) {
- if (!\is_string($type) || !preg_match('/^\??[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)*+$/', $type)) {
- throw new InvalidArgumentException(sprintf('"%s::getSubscribedServices()" must return valid PHP types for service "%s" key "%s", "%s" returned.', $class, $this->currentId, $key, \is_string($type) ? $type : \gettype($type)));
- }
- if ($optionalBehavior = '?' === $type[0]) {
- $type = substr($type, 1);
- $optionalBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
- }
- if (\is_int($name = $key)) {
- $key = $type;
- $name = null;
- }
- if (!isset($serviceMap[$key])) {
- if (!$autowire) {
- throw new InvalidArgumentException(sprintf('Service "%s" misses a "container.service_subscriber" tag with "key"/"id" attributes corresponding to entry "%s" as returned by "%s::getSubscribedServices()".', $this->currentId, $key, $class));
- }
- $serviceMap[$key] = new Reference($type);
- }
-
- if (false !== $i = strpos($name, '::get')) {
- $name = lcfirst(substr($name, 5 + $i));
- } elseif (false !== strpos($name, '::')) {
- $name = null;
- }
-
- if (null !== $name && !$this->container->has($name) && !$this->container->has($type.' $'.$name)) {
- $camelCaseName = lcfirst(str_replace(' ', '', ucwords(preg_replace('/[^a-zA-Z0-9\x7f-\xff]++/', ' ', $name))));
- $name = $this->container->has($type.' $'.$camelCaseName) ? $camelCaseName : $name;
- }
-
- $subscriberMap[$key] = new TypedReference((string) $serviceMap[$key], $type, $optionalBehavior ?: ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE, $name);
- unset($serviceMap[$key]);
- }
-
- if ($serviceMap = array_keys($serviceMap)) {
- $message = sprintf(1 < \count($serviceMap) ? 'keys "%s" do' : 'key "%s" does', str_replace('%', '%%', implode('", "', $serviceMap)));
- throw new InvalidArgumentException(sprintf('Service %s not exist in the map returned by "%s::getSubscribedServices()" for service "%s".', $message, $class, $this->currentId));
- }
-
- $locatorRef = ServiceLocatorTagPass::register($this->container, $subscriberMap, $this->currentId);
-
- $value->addTag('container.service_subscriber.locator', ['id' => (string) $locatorRef]);
-
- $value->setBindings([
- PsrContainerInterface::class => new BoundArgument($locatorRef, false),
- ServiceProviderInterface::class => new BoundArgument($locatorRef, false),
- ] + $value->getBindings());
-
- return parent::processValue($value);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php
deleted file mode 100644
index 04b6852..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveAbstractDefinitionsPass.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Removes abstract Definitions.
- */
-class RemoveAbstractDefinitionsPass implements CompilerPassInterface
-{
- /**
- * Removes abstract definitions from the ContainerBuilder.
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getDefinitions() as $id => $definition) {
- if ($definition->isAbstract()) {
- $container->removeDefinition($id);
- $container->log($this, sprintf('Removed service "%s"; reason: abstract.', $id));
- }
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php
deleted file mode 100644
index 75b36d2..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemovePrivateAliasesPass.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * Remove private aliases from the container. They were only used to establish
- * dependencies between services, and these dependencies have been resolved in
- * one of the previous passes.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class RemovePrivateAliasesPass implements CompilerPassInterface
-{
- /**
- * Removes private aliases from the ContainerBuilder.
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getAliases() as $id => $alias) {
- if ($alias->isPublic()) {
- continue;
- }
-
- $container->removeAlias($id);
- $container->log($this, sprintf('Removed service "%s"; reason: private alias.', $id));
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php
deleted file mode 100644
index 287af23..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RemoveUnusedDefinitionsPass.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Removes unused service definitions from the container.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class RemoveUnusedDefinitionsPass extends AbstractRecursivePass implements RepeatablePassInterface
-{
- private $connectedIds = [];
-
- /**
- * {@inheritdoc}
- */
- public function setRepeatedPass(RepeatedPass $repeatedPass)
- {
- @trigger_error(sprintf('The "%s()" method is deprecated since Symfony 4.2.', __METHOD__), E_USER_DEPRECATED);
- }
-
- /**
- * Processes the ContainerBuilder to remove unused definitions.
- */
- public function process(ContainerBuilder $container)
- {
- try {
- $this->enableExpressionProcessing();
- $this->container = $container;
- $connectedIds = [];
- $aliases = $container->getAliases();
-
- foreach ($aliases as $id => $alias) {
- if ($alias->isPublic()) {
- $this->connectedIds[] = (string) $aliases[$id];
- }
- }
-
- foreach ($container->getDefinitions() as $id => $definition) {
- if ($definition->isPublic()) {
- $connectedIds[$id] = true;
- $this->processValue($definition);
- }
- }
-
- while ($this->connectedIds) {
- $ids = $this->connectedIds;
- $this->connectedIds = [];
- foreach ($ids as $id) {
- if (!isset($connectedIds[$id]) && $container->hasDefinition($id)) {
- $connectedIds[$id] = true;
- $this->processValue($container->getDefinition($id));
- }
- }
- }
-
- foreach ($container->getDefinitions() as $id => $definition) {
- if (!isset($connectedIds[$id])) {
- $container->removeDefinition($id);
- $container->resolveEnvPlaceholders(!$definition->hasErrors() ? serialize($definition) : $definition);
- $container->log($this, sprintf('Removed service "%s"; reason: unused.', $id));
- }
- }
- } finally {
- $this->container = null;
- $this->connectedIds = [];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Reference) {
- return parent::processValue($value, $isRoot);
- }
-
- if (ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior()) {
- $this->connectedIds[] = (string) $value;
- }
-
- return $value;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php
deleted file mode 100644
index 11a5b0d..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatablePassInterface.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-/**
- * Interface that must be implemented by passes that are run as part of an
- * RepeatedPass.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @deprecated since Symfony 4.2.
- */
-interface RepeatablePassInterface extends CompilerPassInterface
-{
- public function setRepeatedPass(RepeatedPass $repeatedPass);
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php
deleted file mode 100644
index b8add1b..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/RepeatedPass.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-@trigger_error(sprintf('The "%s" class is deprecated since Symfony 4.2.', RepeatedPass::class), E_USER_DEPRECATED);
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * A pass that might be run repeatedly.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @deprecated since Symfony 4.2.
- */
-class RepeatedPass implements CompilerPassInterface
-{
- /**
- * @var bool
- */
- private $repeat = false;
-
- private $passes;
-
- /**
- * @param RepeatablePassInterface[] $passes An array of RepeatablePassInterface objects
- *
- * @throws InvalidArgumentException when the passes don't implement RepeatablePassInterface
- */
- public function __construct(array $passes)
- {
- foreach ($passes as $pass) {
- if (!$pass instanceof RepeatablePassInterface) {
- throw new InvalidArgumentException('$passes must be an array of RepeatablePassInterface.');
- }
-
- $pass->setRepeatedPass($this);
- }
-
- $this->passes = $passes;
- }
-
- /**
- * Process the repeatable passes that run more than once.
- */
- public function process(ContainerBuilder $container)
- {
- do {
- $this->repeat = false;
- foreach ($this->passes as $pass) {
- $pass->process($container);
- }
- } while ($this->repeat);
- }
-
- /**
- * Sets if the pass should repeat.
- */
- public function setRepeat()
- {
- $this->repeat = true;
- }
-
- /**
- * Returns the passes.
- *
- * @return RepeatablePassInterface[] An array of RepeatablePassInterface objects
- */
- public function getPasses()
- {
- return $this->passes;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php
deleted file mode 100644
index 9981096..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ReplaceAliasByActualDefinitionPass.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Replaces aliases with actual service definitions, effectively removing these
- * aliases.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ReplaceAliasByActualDefinitionPass extends AbstractRecursivePass
-{
- private $replacements;
-
- /**
- * Process the Container to replace aliases with service definitions.
- *
- * @throws InvalidArgumentException if the service definition does not exist
- */
- public function process(ContainerBuilder $container)
- {
- // First collect all alias targets that need to be replaced
- $seenAliasTargets = [];
- $replacements = [];
- foreach ($container->getAliases() as $definitionId => $target) {
- $targetId = (string) $target;
- // Special case: leave this target alone
- if ('service_container' === $targetId) {
- continue;
- }
- // Check if target needs to be replaces
- if (isset($replacements[$targetId])) {
- $container->setAlias($definitionId, $replacements[$targetId])->setPublic($target->isPublic())->setPrivate($target->isPrivate());
- }
- // No need to process the same target twice
- if (isset($seenAliasTargets[$targetId])) {
- continue;
- }
- // Process new target
- $seenAliasTargets[$targetId] = true;
- try {
- $definition = $container->getDefinition($targetId);
- } catch (ServiceNotFoundException $e) {
- if ('' !== $e->getId() && '@' === $e->getId()[0]) {
- throw new ServiceNotFoundException($e->getId(), $e->getSourceId(), null, [substr($e->getId(), 1)]);
- }
-
- throw $e;
- }
- if ($definition->isPublic()) {
- continue;
- }
- // Remove private definition and schedule for replacement
- $definition->setPublic(!$target->isPrivate());
- $definition->setPrivate($target->isPrivate());
- $container->setDefinition($definitionId, $definition);
- $container->removeDefinition($targetId);
- $replacements[$targetId] = $definitionId;
- }
- $this->replacements = $replacements;
-
- parent::process($container);
- $this->replacements = [];
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof Reference && isset($this->replacements[$referenceId = (string) $value])) {
- // Perform the replacement
- $newId = $this->replacements[$referenceId];
- $value = new Reference($newId, $value->getInvalidBehavior());
- $this->container->log($this, sprintf('Changed reference of service "%s" previously pointing to "%s" to "%s".', $this->currentId, $referenceId, $newId));
- }
-
- return parent::processValue($value, $isRoot);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php
deleted file mode 100644
index e76c43b..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveBindingsPass.php
+++ /dev/null
@@ -1,227 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\BoundArgument;
-use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
-use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\TypedReference;
-
-/**
- * @author Guilhem Niot <guilhem.niot@gmail.com>
- */
-class ResolveBindingsPass extends AbstractRecursivePass
-{
- private $usedBindings = [];
- private $unusedBindings = [];
- private $errorMessages = [];
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- $this->usedBindings = $container->getRemovedBindingIds();
-
- try {
- parent::process($container);
-
- foreach ($this->unusedBindings as list($key, $serviceId, $bindingType, $file)) {
- $argumentType = $argumentName = $message = null;
-
- if (false !== strpos($key, ' ')) {
- list($argumentType, $argumentName) = explode(' ', $key, 2);
- } elseif ('$' === $key[0]) {
- $argumentName = $key;
- } else {
- $argumentType = $key;
- }
-
- if ($argumentType) {
- $message .= sprintf('of type "%s" ', $argumentType);
- }
-
- if ($argumentName) {
- $message .= sprintf('named "%s" ', $argumentName);
- }
-
- if (BoundArgument::DEFAULTS_BINDING === $bindingType) {
- $message .= 'under "_defaults"';
- } elseif (BoundArgument::INSTANCEOF_BINDING === $bindingType) {
- $message .= 'under "_instanceof"';
- } else {
- $message .= sprintf('for service "%s"', $serviceId);
- }
-
- if ($file) {
- $message .= sprintf(' in file "%s"', $file);
- }
-
- $message = sprintf('A binding is configured for an argument %s, but no corresponding argument has been found. It may be unused and should be removed, or it may have a typo.', $message);
-
- if ($this->errorMessages) {
- $message .= sprintf("\nCould be related to%s:", 1 < \count($this->errorMessages) ? ' one of' : '');
- }
- foreach ($this->errorMessages as $m) {
- $message .= "\n - ".$m;
- }
- throw new InvalidArgumentException($message);
- }
- } finally {
- $this->usedBindings = [];
- $this->unusedBindings = [];
- $this->errorMessages = [];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof TypedReference && $value->getType() === (string) $value) {
- // Already checked
- $bindings = $this->container->getDefinition($this->currentId)->getBindings();
- $name = $value->getName();
-
- if (isset($name, $bindings[$name = $value.' $'.$name])) {
- return $this->getBindingValue($bindings[$name]);
- }
-
- if (isset($bindings[$value->getType()])) {
- return $this->getBindingValue($bindings[$value->getType()]);
- }
-
- return parent::processValue($value, $isRoot);
- }
-
- if (!$value instanceof Definition || !$bindings = $value->getBindings()) {
- return parent::processValue($value, $isRoot);
- }
-
- foreach ($bindings as $key => $binding) {
- list($bindingValue, $bindingId, $used, $bindingType, $file) = $binding->getValues();
- if ($used) {
- $this->usedBindings[$bindingId] = true;
- unset($this->unusedBindings[$bindingId]);
- } elseif (!isset($this->usedBindings[$bindingId])) {
- $this->unusedBindings[$bindingId] = [$key, $this->currentId, $bindingType, $file];
- }
-
- if (preg_match('/^(?:(?:array|bool|float|int|string) )?\$/', $key)) {
- continue;
- }
-
- if (null !== $bindingValue && !$bindingValue instanceof Reference && !$bindingValue instanceof Definition && !$bindingValue instanceof TaggedIteratorArgument && !$bindingValue instanceof ServiceLocatorArgument) {
- throw new InvalidArgumentException(sprintf('Invalid value for binding key "%s" for service "%s": expected null, %s, %s, %s or ServiceLocatorArgument, %s given.', $key, $this->currentId, Reference::class, Definition::class, TaggedIteratorArgument::class, \gettype($bindingValue)));
- }
- }
-
- if ($value->isAbstract()) {
- return parent::processValue($value, $isRoot);
- }
-
- $calls = $value->getMethodCalls();
-
- try {
- if ($constructor = $this->getConstructor($value, false)) {
- $calls[] = [$constructor, $value->getArguments()];
- }
- } catch (RuntimeException $e) {
- $this->errorMessages[] = $e->getMessage();
- $this->container->getDefinition($this->currentId)->addError($e->getMessage());
-
- return parent::processValue($value, $isRoot);
- }
-
- foreach ($calls as $i => $call) {
- list($method, $arguments) = $call;
-
- if ($method instanceof \ReflectionFunctionAbstract) {
- $reflectionMethod = $method;
- } else {
- try {
- $reflectionMethod = $this->getReflectionMethod($value, $method);
- } catch (RuntimeException $e) {
- if ($value->getFactory()) {
- continue;
- }
- throw $e;
- }
- }
-
- foreach ($reflectionMethod->getParameters() as $key => $parameter) {
- if (\array_key_exists($key, $arguments) && '' !== $arguments[$key]) {
- continue;
- }
-
- $typeHint = ProxyHelper::getTypeHint($reflectionMethod, $parameter);
-
- if (\array_key_exists($k = ltrim($typeHint, '\\').' $'.$parameter->name, $bindings)) {
- $arguments[$key] = $this->getBindingValue($bindings[$k]);
-
- continue;
- }
-
- if (\array_key_exists('$'.$parameter->name, $bindings)) {
- $arguments[$key] = $this->getBindingValue($bindings['$'.$parameter->name]);
-
- continue;
- }
-
- if (!$typeHint || '\\' !== $typeHint[0] || !isset($bindings[$typeHint = substr($typeHint, 1)])) {
- continue;
- }
-
- $arguments[$key] = $this->getBindingValue($bindings[$typeHint]);
- }
-
- if ($arguments !== $call[1]) {
- ksort($arguments);
- $calls[$i][1] = $arguments;
- }
- }
-
- if ($constructor) {
- list(, $arguments) = array_pop($calls);
-
- if ($arguments !== $value->getArguments()) {
- $value->setArguments($arguments);
- }
- }
-
- if ($calls !== $value->getMethodCalls()) {
- $value->setMethodCalls($calls);
- }
-
- return parent::processValue($value, $isRoot);
- }
-
- /**
- * @return mixed
- */
- private function getBindingValue(BoundArgument $binding)
- {
- list($bindingValue, $bindingId) = $binding->getValues();
-
- $this->usedBindings[$bindingId] = true;
- unset($this->unusedBindings[$bindingId]);
-
- return $bindingValue;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php
deleted file mode 100644
index 453e3f6..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveChildDefinitionsPass.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ChildDefinition;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\ExceptionInterface;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-
-/**
- * This replaces all ChildDefinition instances with their equivalent fully
- * merged Definition instance.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ResolveChildDefinitionsPass extends AbstractRecursivePass
-{
- private $currentPath;
-
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Definition) {
- return parent::processValue($value, $isRoot);
- }
- if ($isRoot) {
- // yes, we are specifically fetching the definition from the
- // container to ensure we are not operating on stale data
- $value = $this->container->getDefinition($this->currentId);
- }
- if ($value instanceof ChildDefinition) {
- $this->currentPath = [];
- $value = $this->resolveDefinition($value);
- if ($isRoot) {
- $this->container->setDefinition($this->currentId, $value);
- }
- }
-
- return parent::processValue($value, $isRoot);
- }
-
- /**
- * Resolves the definition.
- *
- * @throws RuntimeException When the definition is invalid
- */
- private function resolveDefinition(ChildDefinition $definition): Definition
- {
- try {
- return $this->doResolveDefinition($definition);
- } catch (ServiceCircularReferenceException $e) {
- throw $e;
- } catch (ExceptionInterface $e) {
- $r = new \ReflectionProperty($e, 'message');
- $r->setAccessible(true);
- $r->setValue($e, sprintf('Service "%s": %s', $this->currentId, $e->getMessage()));
-
- throw $e;
- }
- }
-
- private function doResolveDefinition(ChildDefinition $definition): Definition
- {
- if (!$this->container->has($parent = $definition->getParent())) {
- throw new RuntimeException(sprintf('Parent definition "%s" does not exist.', $parent));
- }
-
- $searchKey = array_search($parent, $this->currentPath);
- $this->currentPath[] = $parent;
-
- if (false !== $searchKey) {
- throw new ServiceCircularReferenceException($parent, \array_slice($this->currentPath, $searchKey));
- }
-
- $parentDef = $this->container->findDefinition($parent);
- if ($parentDef instanceof ChildDefinition) {
- $id = $this->currentId;
- $this->currentId = $parent;
- $parentDef = $this->resolveDefinition($parentDef);
- $this->container->setDefinition($parent, $parentDef);
- $this->currentId = $id;
- }
-
- $this->container->log($this, sprintf('Resolving inheritance for "%s" (parent: %s).', $this->currentId, $parent));
- $def = new Definition();
-
- // merge in parent definition
- // purposely ignored attributes: abstract, shared, tags, autoconfigured
- $def->setClass($parentDef->getClass());
- $def->setArguments($parentDef->getArguments());
- $def->setMethodCalls($parentDef->getMethodCalls());
- $def->setProperties($parentDef->getProperties());
- if ($parentDef->isDeprecated()) {
- $def->setDeprecated(true, $parentDef->getDeprecationMessage('%service_id%'));
- }
- $def->setFactory($parentDef->getFactory());
- $def->setConfigurator($parentDef->getConfigurator());
- $def->setFile($parentDef->getFile());
- $def->setPublic($parentDef->isPublic());
- $def->setLazy($parentDef->isLazy());
- $def->setAutowired($parentDef->isAutowired());
- $def->setChanges($parentDef->getChanges());
-
- $def->setBindings($definition->getBindings() + $parentDef->getBindings());
-
- // overwrite with values specified in the decorator
- $changes = $definition->getChanges();
- if (isset($changes['class'])) {
- $def->setClass($definition->getClass());
- }
- if (isset($changes['factory'])) {
- $def->setFactory($definition->getFactory());
- }
- if (isset($changes['configurator'])) {
- $def->setConfigurator($definition->getConfigurator());
- }
- if (isset($changes['file'])) {
- $def->setFile($definition->getFile());
- }
- if (isset($changes['public'])) {
- $def->setPublic($definition->isPublic());
- } else {
- $def->setPrivate($definition->isPrivate() || $parentDef->isPrivate());
- }
- if (isset($changes['lazy'])) {
- $def->setLazy($definition->isLazy());
- }
- if (isset($changes['deprecated'])) {
- $def->setDeprecated($definition->isDeprecated(), $definition->getDeprecationMessage('%service_id%'));
- }
- if (isset($changes['autowired'])) {
- $def->setAutowired($definition->isAutowired());
- }
- if (isset($changes['shared'])) {
- $def->setShared($definition->isShared());
- }
- if (isset($changes['decorated_service'])) {
- $decoratedService = $definition->getDecoratedService();
- if (null === $decoratedService) {
- $def->setDecoratedService($decoratedService);
- } else {
- $def->setDecoratedService($decoratedService[0], $decoratedService[1], $decoratedService[2], $decoratedService[3] ?? ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE);
- }
- }
-
- // merge arguments
- foreach ($definition->getArguments() as $k => $v) {
- if (is_numeric($k)) {
- $def->addArgument($v);
- } elseif (0 === strpos($k, 'index_')) {
- $def->replaceArgument((int) substr($k, \strlen('index_')), $v);
- } else {
- $def->setArgument($k, $v);
- }
- }
-
- // merge properties
- foreach ($definition->getProperties() as $k => $v) {
- $def->setProperty($k, $v);
- }
-
- // append method calls
- if ($calls = $definition->getMethodCalls()) {
- $def->setMethodCalls(array_merge($def->getMethodCalls(), $calls));
- }
-
- $def->addError($parentDef);
- $def->addError($definition);
-
- // these attributes are always taken from the child
- $def->setAbstract($definition->isAbstract());
- $def->setTags($definition->getTags());
- // autoconfigure is never taken from parent (on purpose)
- // and it's not legal on an instanceof
- $def->setAutoconfigured($definition->isAutoconfigured());
-
- return $def;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php
deleted file mode 100644
index 5932472..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveClassPass.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ChildDefinition;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ResolveClassPass implements CompilerPassInterface
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getDefinitions() as $id => $definition) {
- if ($definition->isSynthetic() || null !== $definition->getClass()) {
- continue;
- }
- if (preg_match('/^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+(?:\\\\[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*+)++$/', $id)) {
- if ($definition instanceof ChildDefinition && !class_exists($id)) {
- throw new InvalidArgumentException(sprintf('Service definition "%s" has a parent but no class, and its name looks like a FQCN. Either the class is missing or you want to inherit it from the parent service. To resolve this ambiguity, please rename this service to a non-FQCN (e.g. using dots), or create the missing class.', $id));
- }
- $definition->setClass($id);
- }
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php
deleted file mode 100644
index 9e1edd4..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveEnvPlaceholdersPass.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * Replaces env var placeholders by their current values.
- */
-class ResolveEnvPlaceholdersPass extends AbstractRecursivePass
-{
- protected function processValue($value, $isRoot = false)
- {
- if (\is_string($value)) {
- return $this->container->resolveEnvPlaceholders($value, true);
- }
- if ($value instanceof Definition) {
- $changes = $value->getChanges();
- if (isset($changes['class'])) {
- $value->setClass($this->container->resolveEnvPlaceholders($value->getClass(), true));
- }
- if (isset($changes['file'])) {
- $value->setFile($this->container->resolveEnvPlaceholders($value->getFile(), true));
- }
- }
-
- $value = parent::processValue($value, $isRoot);
-
- if ($value && \is_array($value) && !$isRoot) {
- $value = array_combine($this->container->resolveEnvPlaceholders(array_keys($value), true), $value);
- }
-
- return $value;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php
deleted file mode 100644
index 848da7f..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveFactoryClassPass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * @author Maxime Steinhausser <maxime.steinhausser@gmail.com>
- */
-class ResolveFactoryClassPass extends AbstractRecursivePass
-{
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof Definition && \is_array($factory = $value->getFactory()) && null === $factory[0]) {
- if (null === $class = $value->getClass()) {
- throw new RuntimeException(sprintf('The "%s" service is defined to be created by a factory, but is missing the factory class. Did you forget to define the factory or service class?', $this->currentId));
- }
-
- $factory[0] = $class;
- $value->setFactory($factory);
- }
-
- return parent::processValue($value, $isRoot);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php
deleted file mode 100644
index bfdd91c..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveHotPathPass.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\ArgumentInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Propagate "container.hot_path" tags to referenced services.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ResolveHotPathPass extends AbstractRecursivePass
-{
- private $tagName;
- private $resolvedIds = [];
-
- public function __construct(string $tagName = 'container.hot_path')
- {
- $this->tagName = $tagName;
- }
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- try {
- parent::process($container);
- $container->getDefinition('service_container')->clearTag($this->tagName);
- } finally {
- $this->resolvedIds = [];
- }
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof ArgumentInterface) {
- return $value;
- }
- if ($value instanceof Definition && $isRoot && (isset($this->resolvedIds[$this->currentId]) || !$value->hasTag($this->tagName) || $value->isDeprecated())) {
- return $value->isDeprecated() ? $value->clearTag($this->tagName) : $value;
- }
- if ($value instanceof Reference && ContainerBuilder::IGNORE_ON_UNINITIALIZED_REFERENCE !== $value->getInvalidBehavior() && $this->container->has($id = (string) $value)) {
- $definition = $this->container->findDefinition($id);
- if (!$definition->hasTag($this->tagName) && !$definition->isDeprecated()) {
- $this->resolvedIds[$id] = true;
- $definition->addTag($this->tagName);
- parent::processValue($definition, false);
- }
-
- return $value;
- }
-
- return parent::processValue($value, $isRoot);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php
deleted file mode 100644
index 96afb03..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInstanceofConditionalsPass.php
+++ /dev/null
@@ -1,168 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ChildDefinition;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-
-/**
- * Applies instanceof conditionals to definitions.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ResolveInstanceofConditionalsPass implements CompilerPassInterface
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getAutoconfiguredInstanceof() as $interface => $definition) {
- if ($definition->getArguments()) {
- throw new InvalidArgumentException(sprintf('Autoconfigured instanceof for type "%s" defines arguments but these are not supported and should be removed.', $interface));
- }
- }
-
- foreach ($container->getDefinitions() as $id => $definition) {
- if ($definition instanceof ChildDefinition) {
- // don't apply "instanceof" to children: it will be applied to their parent
- continue;
- }
- $container->setDefinition($id, $this->processDefinition($container, $id, $definition));
- }
- }
-
- private function processDefinition(ContainerBuilder $container, string $id, Definition $definition): Definition
- {
- $instanceofConditionals = $definition->getInstanceofConditionals();
- $autoconfiguredInstanceof = $definition->isAutoconfigured() ? $container->getAutoconfiguredInstanceof() : [];
- if (!$instanceofConditionals && !$autoconfiguredInstanceof) {
- return $definition;
- }
-
- if (!$class = $container->getParameterBag()->resolveValue($definition->getClass())) {
- return $definition;
- }
-
- $conditionals = $this->mergeConditionals($autoconfiguredInstanceof, $instanceofConditionals, $container);
-
- $definition->setInstanceofConditionals([]);
- $parent = $shared = null;
- $instanceofTags = [];
- $instanceofCalls = [];
- $instanceofBindings = [];
- $reflectionClass = null;
-
- foreach ($conditionals as $interface => $instanceofDefs) {
- if ($interface !== $class && !(null === $reflectionClass ? $reflectionClass = ($container->getReflectionClass($class, false) ?: false) : $reflectionClass)) {
- continue;
- }
-
- if ($interface !== $class && !is_subclass_of($class, $interface)) {
- continue;
- }
-
- foreach ($instanceofDefs as $key => $instanceofDef) {
- /** @var ChildDefinition $instanceofDef */
- $instanceofDef = clone $instanceofDef;
- $instanceofDef->setAbstract(true)->setParent($parent ?: '.abstract.instanceof.'.$id);
- $parent = '.instanceof.'.$interface.'.'.$key.'.'.$id;
- $container->setDefinition($parent, $instanceofDef);
- $instanceofTags[] = $instanceofDef->getTags();
- $instanceofBindings = $instanceofDef->getBindings() + $instanceofBindings;
-
- foreach ($instanceofDef->getMethodCalls() as $methodCall) {
- $instanceofCalls[] = $methodCall;
- }
-
- $instanceofDef->setTags([]);
- $instanceofDef->setMethodCalls([]);
- $instanceofDef->setBindings([]);
-
- if (isset($instanceofDef->getChanges()['shared'])) {
- $shared = $instanceofDef->isShared();
- }
- }
- }
-
- if ($parent) {
- $bindings = $definition->getBindings();
- $abstract = $container->setDefinition('.abstract.instanceof.'.$id, $definition);
-
- // cast Definition to ChildDefinition
- $definition->setBindings([]);
- $definition = serialize($definition);
- $definition = substr_replace($definition, '53', 2, 2);
- $definition = substr_replace($definition, 'Child', 44, 0);
- /** @var ChildDefinition $definition */
- $definition = unserialize($definition);
- $definition->setParent($parent);
-
- if (null !== $shared && !isset($definition->getChanges()['shared'])) {
- $definition->setShared($shared);
- }
-
- // Don't add tags to service decorators
- if (null === $definition->getDecoratedService()) {
- $i = \count($instanceofTags);
- while (0 <= --$i) {
- foreach ($instanceofTags[$i] as $k => $v) {
- foreach ($v as $v) {
- if ($definition->hasTag($k) && \in_array($v, $definition->getTag($k))) {
- continue;
- }
- $definition->addTag($k, $v);
- }
- }
- }
- }
-
- $definition->setMethodCalls(array_merge($instanceofCalls, $definition->getMethodCalls()));
- $definition->setBindings($bindings + $instanceofBindings);
-
- // reset fields with "merge" behavior
- $abstract
- ->setBindings([])
- ->setArguments([])
- ->setMethodCalls([])
- ->setDecoratedService(null)
- ->setTags([])
- ->setAbstract(true);
- }
-
- return $definition;
- }
-
- private function mergeConditionals(array $autoconfiguredInstanceof, array $instanceofConditionals, ContainerBuilder $container): array
- {
- // make each value an array of ChildDefinition
- $conditionals = array_map(function ($childDef) { return [$childDef]; }, $autoconfiguredInstanceof);
-
- foreach ($instanceofConditionals as $interface => $instanceofDef) {
- // make sure the interface/class exists (but don't validate automaticInstanceofConditionals)
- if (!$container->getReflectionClass($interface)) {
- throw new RuntimeException(sprintf('"%s" is set as an "instanceof" conditional, but it does not exist.', $interface));
- }
-
- if (!isset($autoconfiguredInstanceof[$interface])) {
- $conditionals[$interface] = [];
- }
-
- $conditionals[$interface][] = $instanceofDef;
- }
-
- return $conditionals;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php
deleted file mode 100644
index 948de42..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveInvalidReferencesPass.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\ArgumentInterface;
-use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\RuntimeException;
-use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\TypedReference;
-
-/**
- * Emulates the invalid behavior if the reference is not found within the
- * container.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveInvalidReferencesPass implements CompilerPassInterface
-{
- private $container;
- private $signalingException;
- private $currentId;
-
- /**
- * Process the ContainerBuilder to resolve invalid references.
- */
- public function process(ContainerBuilder $container)
- {
- $this->container = $container;
- $this->signalingException = new RuntimeException('Invalid reference.');
-
- try {
- foreach ($container->getDefinitions() as $this->currentId => $definition) {
- $this->processValue($definition);
- }
- } finally {
- $this->container = $this->signalingException = null;
- }
- }
-
- /**
- * Processes arguments to determine invalid references.
- *
- * @return mixed
- *
- * @throws RuntimeException When an invalid reference is found
- */
- private function processValue($value, int $rootLevel = 0, int $level = 0)
- {
- if ($value instanceof ServiceClosureArgument) {
- $value->setValues($this->processValue($value->getValues(), 1, 1));
- } elseif ($value instanceof ArgumentInterface) {
- $value->setValues($this->processValue($value->getValues(), $rootLevel, 1 + $level));
- } elseif ($value instanceof Definition) {
- if ($value->isSynthetic() || $value->isAbstract()) {
- return $value;
- }
- $value->setArguments($this->processValue($value->getArguments(), 0));
- $value->setProperties($this->processValue($value->getProperties(), 1));
- $value->setMethodCalls($this->processValue($value->getMethodCalls(), 2));
- } elseif (\is_array($value)) {
- $i = 0;
-
- foreach ($value as $k => $v) {
- try {
- if (false !== $i && $k !== $i++) {
- $i = false;
- }
- if ($v !== $processedValue = $this->processValue($v, $rootLevel, 1 + $level)) {
- $value[$k] = $processedValue;
- }
- } catch (RuntimeException $e) {
- if ($rootLevel < $level || ($rootLevel && !$level)) {
- unset($value[$k]);
- } elseif ($rootLevel) {
- throw $e;
- } else {
- $value[$k] = null;
- }
- }
- }
-
- // Ensure numerically indexed arguments have sequential numeric keys.
- if (false !== $i) {
- $value = array_values($value);
- }
- } elseif ($value instanceof Reference) {
- if ($this->container->has($id = (string) $value)) {
- return $value;
- }
-
- $currentDefinition = $this->container->getDefinition($this->currentId);
-
- // resolve decorated service behavior depending on decorator service
- if ($currentDefinition->innerServiceId === $id && ContainerInterface::NULL_ON_INVALID_REFERENCE === $currentDefinition->decorationOnInvalid) {
- return null;
- }
-
- $invalidBehavior = $value->getInvalidBehavior();
-
- if (ContainerInterface::RUNTIME_EXCEPTION_ON_INVALID_REFERENCE === $invalidBehavior && $value instanceof TypedReference && !$this->container->has($id)) {
- $e = new ServiceNotFoundException($id, $this->currentId);
-
- // since the error message varies by $id and $this->currentId, so should the id of the dummy errored definition
- $this->container->register($id = sprintf('.errored.%s.%s', $this->currentId, $id), $value->getType())
- ->addError($e->getMessage());
-
- return new TypedReference($id, $value->getType(), $value->getInvalidBehavior());
- }
-
- // resolve invalid behavior
- if (ContainerInterface::NULL_ON_INVALID_REFERENCE === $invalidBehavior) {
- $value = null;
- } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE === $invalidBehavior) {
- if (0 < $level || $rootLevel) {
- throw $this->signalingException;
- }
- $value = null;
- }
- }
-
- return $value;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php
deleted file mode 100644
index 6004cc3..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveNamedArgumentsPass.php
+++ /dev/null
@@ -1,112 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\LazyProxy\ProxyHelper;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Resolves named arguments to their corresponding numeric index.
- *
- * @author Kévin Dunglas <dunglas@gmail.com>
- */
-class ResolveNamedArgumentsPass extends AbstractRecursivePass
-{
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Definition) {
- return parent::processValue($value, $isRoot);
- }
-
- $calls = $value->getMethodCalls();
- $calls[] = ['__construct', $value->getArguments()];
-
- foreach ($calls as $i => $call) {
- list($method, $arguments) = $call;
- $parameters = null;
- $resolvedArguments = [];
-
- foreach ($arguments as $key => $argument) {
- if (\is_int($key)) {
- $resolvedArguments[$key] = $argument;
- continue;
- }
-
- if (null === $parameters) {
- $r = $this->getReflectionMethod($value, $method);
- $class = $r instanceof \ReflectionMethod ? $r->class : $this->currentId;
- $method = $r->getName();
- $parameters = $r->getParameters();
- }
-
- if (isset($key[0]) && '$' !== $key[0] && !class_exists($key) && !interface_exists($key, false)) {
- throw new InvalidArgumentException(sprintf('Invalid service "%s": did you forget to add the "$" prefix to argument "%s"?', $this->currentId, $key));
- }
-
- if (isset($key[0]) && '$' === $key[0]) {
- foreach ($parameters as $j => $p) {
- if ($key === '$'.$p->name) {
- if ($p->isVariadic() && \is_array($argument)) {
- foreach ($argument as $variadicArgument) {
- $resolvedArguments[$j++] = $variadicArgument;
- }
- } else {
- $resolvedArguments[$j] = $argument;
- }
-
- continue 2;
- }
- }
-
- throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument named "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key));
- }
-
- if (null !== $argument && !$argument instanceof Reference && !$argument instanceof Definition) {
- throw new InvalidArgumentException(sprintf('Invalid service "%s": the value of argument "%s" of method "%s()" must be null, an instance of %s or an instance of %s, %s given.', $this->currentId, $key, $class !== $this->currentId ? $class.'::'.$method : $method, Reference::class, Definition::class, \gettype($argument)));
- }
-
- $typeFound = false;
- foreach ($parameters as $j => $p) {
- if (!\array_key_exists($j, $resolvedArguments) && ProxyHelper::getTypeHint($r, $p, true) === $key) {
- $resolvedArguments[$j] = $argument;
- $typeFound = true;
- }
- }
-
- if (!$typeFound) {
- throw new InvalidArgumentException(sprintf('Invalid service "%s": method "%s()" has no argument type-hinted as "%s". Check your service definition.', $this->currentId, $class !== $this->currentId ? $class.'::'.$method : $method, $key));
- }
- }
-
- if ($resolvedArguments !== $call[1]) {
- ksort($resolvedArguments);
- $calls[$i][1] = $resolvedArguments;
- }
- }
-
- list(, $arguments) = array_pop($calls);
-
- if ($arguments !== $value->getArguments()) {
- $value->setArguments($arguments);
- }
- if ($calls !== $value->getMethodCalls()) {
- $value->setMethodCalls($calls);
- }
-
- return parent::processValue($value, $isRoot);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php
deleted file mode 100644
index 2dec13f..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveParameterPlaceHoldersPass.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException;
-
-/**
- * Resolves all parameter placeholders "%somevalue%" to their real values.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveParameterPlaceHoldersPass extends AbstractRecursivePass
-{
- private $bag;
- private $resolveArrays;
-
- public function __construct(bool $resolveArrays = true)
- {
- $this->resolveArrays = $resolveArrays;
- }
-
- /**
- * {@inheritdoc}
- *
- * @throws ParameterNotFoundException
- */
- public function process(ContainerBuilder $container)
- {
- $this->bag = $container->getParameterBag();
-
- try {
- parent::process($container);
-
- $aliases = [];
- foreach ($container->getAliases() as $name => $target) {
- $this->currentId = $name;
- $aliases[$this->bag->resolveValue($name)] = $target;
- }
- $container->setAliases($aliases);
- } catch (ParameterNotFoundException $e) {
- $e->setSourceId($this->currentId);
-
- throw $e;
- }
-
- $this->bag->resolve();
- $this->bag = null;
- }
-
- protected function processValue($value, $isRoot = false)
- {
- if (\is_string($value)) {
- $v = $this->bag->resolveValue($value);
-
- return $this->resolveArrays || !$v || !\is_array($v) ? $v : $value;
- }
- if ($value instanceof Definition) {
- $value->setBindings($this->processValue($value->getBindings()));
- $changes = $value->getChanges();
- if (isset($changes['class'])) {
- $value->setClass($this->bag->resolveValue($value->getClass()));
- }
- if (isset($changes['file'])) {
- $value->setFile($this->bag->resolveValue($value->getFile()));
- }
- }
-
- $value = parent::processValue($value, $isRoot);
-
- if ($value && \is_array($value)) {
- $value = array_combine($this->bag->resolveValue(array_keys($value)), $value);
- }
-
- return $value;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php
deleted file mode 100644
index 1bd9934..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolvePrivatesPass.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-
-/**
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ResolvePrivatesPass implements CompilerPassInterface
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- foreach ($container->getDefinitions() as $id => $definition) {
- if ($definition->isPrivate()) {
- $definition->setPublic(false);
- $definition->setPrivate(true);
- }
- }
-
- foreach ($container->getAliases() as $id => $alias) {
- if ($alias->isPrivate()) {
- $alias->setPublic(false);
- $alias->setPrivate(true);
- }
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php
deleted file mode 100644
index bf9ea2b..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveReferencesToAliasesPass.php
+++ /dev/null
@@ -1,80 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException;
-use Symfony\Component\DependencyInjection\Reference;
-
-/**
- * Replaces all references to aliases with references to the actual service.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ResolveReferencesToAliasesPass extends AbstractRecursivePass
-{
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- parent::process($container);
-
- foreach ($container->getAliases() as $id => $alias) {
- $aliasId = (string) $alias;
- $this->currentId = $id;
-
- if ($aliasId !== $defId = $this->getDefinitionId($aliasId, $container)) {
- $container->setAlias($id, $defId)->setPublic($alias->isPublic())->setPrivate($alias->isPrivate());
- }
- }
- }
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof Reference) {
- return parent::processValue($value, $isRoot);
- }
-
- $defId = $this->getDefinitionId($id = (string) $value, $this->container);
-
- return $defId !== $id ? new Reference($defId, $value->getInvalidBehavior()) : $value;
- }
-
- private function getDefinitionId(string $id, ContainerBuilder $container): string
- {
- if (!$container->hasAlias($id)) {
- return $id;
- }
-
- $alias = $container->getAlias($id);
-
- if ($alias->isDeprecated()) {
- @trigger_error(sprintf('%s. It is being referenced by the "%s" %s.', rtrim($alias->getDeprecationMessage($id), '. '), $this->currentId, $container->hasDefinition($this->currentId) ? 'service' : 'alias'), E_USER_DEPRECATED);
- }
-
- $seen = [];
- do {
- if (isset($seen[$id])) {
- throw new ServiceCircularReferenceException($id, array_merge(array_keys($seen), [$id]));
- }
-
- $seen[$id] = true;
- $id = (string) $container->getAlias($id);
- } while ($container->hasAlias($id));
-
- return $id;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php
deleted file mode 100644
index 399f349..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveServiceSubscribersPass.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Psr\Container\ContainerInterface;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Contracts\Service\ServiceProviderInterface;
-
-/**
- * Compiler pass to inject their service locator to service subscribers.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-class ResolveServiceSubscribersPass extends AbstractRecursivePass
-{
- private $serviceLocator;
-
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof Reference && $this->serviceLocator && \in_array((string) $value, [ContainerInterface::class, ServiceProviderInterface::class], true)) {
- return new Reference($this->serviceLocator);
- }
-
- if (!$value instanceof Definition) {
- return parent::processValue($value, $isRoot);
- }
-
- $serviceLocator = $this->serviceLocator;
- $this->serviceLocator = null;
-
- if ($value->hasTag('container.service_subscriber.locator')) {
- $this->serviceLocator = $value->getTag('container.service_subscriber.locator')[0]['id'];
- $value->clearTag('container.service_subscriber.locator');
- }
-
- try {
- return parent::processValue($value);
- } finally {
- $this->serviceLocator = $serviceLocator;
- }
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php
deleted file mode 100644
index a430572..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ResolveTaggedIteratorArgumentPass.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument;
-
-/**
- * Resolves all TaggedIteratorArgument arguments.
- *
- * @author Roland Franssen <franssen.roland@gmail.com>
- */
-class ResolveTaggedIteratorArgumentPass extends AbstractRecursivePass
-{
- use PriorityTaggedServiceTrait;
-
- /**
- * {@inheritdoc}
- */
- protected function processValue($value, $isRoot = false)
- {
- if (!$value instanceof TaggedIteratorArgument) {
- return parent::processValue($value, $isRoot);
- }
-
- $value->setValues($this->findAndSortTaggedServices($value, $this->container));
-
- return $value;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php
deleted file mode 100644
index 5fdbe56..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceLocatorTagPass.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument;
-use Symfony\Component\DependencyInjection\Argument\ServiceLocatorArgument;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Definition;
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\DependencyInjection\ServiceLocator;
-
-/**
- * Applies the "container.service_locator" tag by wrapping references into ServiceClosureArgument instances.
- *
- * @author Nicolas Grekas <p@tchwork.com>
- */
-final class ServiceLocatorTagPass extends AbstractRecursivePass
-{
- use PriorityTaggedServiceTrait;
-
- protected function processValue($value, $isRoot = false)
- {
- if ($value instanceof ServiceLocatorArgument) {
- if ($value->getTaggedIteratorArgument()) {
- $value->setValues($this->findAndSortTaggedServices($value->getTaggedIteratorArgument(), $this->container));
- }
-
- return self::register($this->container, $value->getValues());
- }
-
- if (!$value instanceof Definition || !$value->hasTag('container.service_locator')) {
- return parent::processValue($value, $isRoot);
- }
-
- if (!$value->getClass()) {
- $value->setClass(ServiceLocator::class);
- }
-
- $arguments = $value->getArguments();
- if (!isset($arguments[0]) || !\is_array($arguments[0])) {
- throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set.', $this->currentId));
- }
-
- $i = 0;
-
- foreach ($arguments[0] as $k => $v) {
- if ($v instanceof ServiceClosureArgument) {
- continue;
- }
- if (!$v instanceof Reference) {
- throw new InvalidArgumentException(sprintf('Invalid definition for service "%s": an array of references is expected as first argument when the "container.service_locator" tag is set, "%s" found for key "%s".', $this->currentId, \is_object($v) ? \get_class($v) : \gettype($v), $k));
- }
-
- if ($i === $k) {
- unset($arguments[0][$k]);
-
- $k = (string) $v;
- ++$i;
- } elseif (\is_int($k)) {
- $i = null;
- }
- $arguments[0][$k] = new ServiceClosureArgument($v);
- }
- ksort($arguments[0]);
-
- $value->setArguments($arguments);
-
- $id = '.service_locator.'.ContainerBuilder::hash($value);
-
- if ($isRoot) {
- if ($id !== $this->currentId) {
- $this->container->setAlias($id, new Alias($this->currentId, false));
- }
-
- return $value;
- }
-
- $this->container->setDefinition($id, $value->setPublic(false));
-
- return new Reference($id);
- }
-
- /**
- * @param Reference[] $refMap
- */
- public static function register(ContainerBuilder $container, array $refMap, string $callerId = null): Reference
- {
- foreach ($refMap as $id => $ref) {
- if (!$ref instanceof Reference) {
- throw new InvalidArgumentException(sprintf('Invalid service locator definition: only services can be referenced, "%s" found for key "%s". Inject parameter values using constructors instead.', \is_object($ref) ? \get_class($ref) : \gettype($ref), $id));
- }
- $refMap[$id] = new ServiceClosureArgument($ref);
- }
- ksort($refMap);
-
- $locator = (new Definition(ServiceLocator::class))
- ->addArgument($refMap)
- ->setPublic(false)
- ->addTag('container.service_locator');
-
- if (null !== $callerId && $container->hasDefinition($callerId)) {
- $locator->setBindings($container->getDefinition($callerId)->getBindings());
- }
-
- if (!$container->hasDefinition($id = '.service_locator.'.ContainerBuilder::hash($locator))) {
- $container->setDefinition($id, $locator);
- }
-
- if (null !== $callerId) {
- $locatorId = $id;
- // Locators are shared when they hold the exact same list of factories;
- // to have them specialized per consumer service, we use a cloning factory
- // to derivate customized instances from the prototype one.
- $container->register($id .= '.'.$callerId, ServiceLocator::class)
- ->setPublic(false)
- ->setFactory([new Reference($locatorId), 'withContext'])
- ->addTag('container.service_locator_context', ['id' => $callerId])
- ->addArgument($callerId)
- ->addArgument(new Reference('service_container'));
- }
-
- return new Reference($id);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php
deleted file mode 100644
index 308abc6..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraph.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
-
-/**
- * This is a directed graph of your services.
- *
- * This information can be used by your compiler passes instead of collecting
- * it themselves which improves performance quite a lot.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- *
- * @final
- */
-class ServiceReferenceGraph
-{
- /**
- * @var ServiceReferenceGraphNode[]
- */
- private $nodes = [];
-
- public function hasNode(string $id): bool
- {
- return isset($this->nodes[$id]);
- }
-
- /**
- * Gets a node by identifier.
- *
- * @throws InvalidArgumentException if no node matches the supplied identifier
- */
- public function getNode(string $id): ServiceReferenceGraphNode
- {
- if (!isset($this->nodes[$id])) {
- throw new InvalidArgumentException(sprintf('There is no node with id "%s".', $id));
- }
-
- return $this->nodes[$id];
- }
-
- /**
- * Returns all nodes.
- *
- * @return ServiceReferenceGraphNode[]
- */
- public function getNodes(): array
- {
- return $this->nodes;
- }
-
- /**
- * Clears all nodes.
- */
- public function clear()
- {
- foreach ($this->nodes as $node) {
- $node->clear();
- }
- $this->nodes = [];
- }
-
- /**
- * Connects 2 nodes together in the Graph.
- */
- public function connect(?string $sourceId, $sourceValue, ?string $destId, $destValue = null, $reference = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false)
- {
- if (null === $sourceId || null === $destId) {
- return;
- }
-
- $sourceNode = $this->createNode($sourceId, $sourceValue);
- $destNode = $this->createNode($destId, $destValue);
- $edge = new ServiceReferenceGraphEdge($sourceNode, $destNode, $reference, $lazy, $weak, $byConstructor);
-
- $sourceNode->addOutEdge($edge);
- $destNode->addInEdge($edge);
- }
-
- private function createNode(string $id, $value): ServiceReferenceGraphNode
- {
- if (isset($this->nodes[$id]) && $this->nodes[$id]->getValue() === $value) {
- return $this->nodes[$id];
- }
-
- return $this->nodes[$id] = new ServiceReferenceGraphNode($id, $value);
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php
deleted file mode 100644
index 9861456..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphEdge.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-/**
- * Represents an edge in your service graph.
- *
- * Value is typically a reference.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceReferenceGraphEdge
-{
- private $sourceNode;
- private $destNode;
- private $value;
- private $lazy;
- private $weak;
- private $byConstructor;
-
- public function __construct(ServiceReferenceGraphNode $sourceNode, ServiceReferenceGraphNode $destNode, $value = null, bool $lazy = false, bool $weak = false, bool $byConstructor = false)
- {
- $this->sourceNode = $sourceNode;
- $this->destNode = $destNode;
- $this->value = $value;
- $this->lazy = $lazy;
- $this->weak = $weak;
- $this->byConstructor = $byConstructor;
- }
-
- /**
- * Returns the value of the edge.
- *
- * @return mixed
- */
- public function getValue()
- {
- return $this->value;
- }
-
- /**
- * Returns the source node.
- *
- * @return ServiceReferenceGraphNode
- */
- public function getSourceNode()
- {
- return $this->sourceNode;
- }
-
- /**
- * Returns the destination node.
- *
- * @return ServiceReferenceGraphNode
- */
- public function getDestNode()
- {
- return $this->destNode;
- }
-
- /**
- * Returns true if the edge is lazy, meaning it's a dependency not requiring direct instantiation.
- *
- * @return bool
- */
- public function isLazy()
- {
- return $this->lazy;
- }
-
- /**
- * Returns true if the edge is weak, meaning it shouldn't prevent removing the target service.
- *
- * @return bool
- */
- public function isWeak()
- {
- return $this->weak;
- }
-
- /**
- * Returns true if the edge links with a constructor argument.
- *
- * @return bool
- */
- public function isReferencedByConstructor()
- {
- return $this->byConstructor;
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php
deleted file mode 100644
index fec1424..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ServiceReferenceGraphNode.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Alias;
-use Symfony\Component\DependencyInjection\Definition;
-
-/**
- * Represents a node in your service graph.
- *
- * Value is typically a definition, or an alias.
- *
- * @author Johannes M. Schmitt <schmittjoh@gmail.com>
- */
-class ServiceReferenceGraphNode
-{
- private $id;
- private $inEdges = [];
- private $outEdges = [];
- private $value;
-
- /**
- * @param string $id The node identifier
- * @param mixed $value The node value
- */
- public function __construct(string $id, $value)
- {
- $this->id = $id;
- $this->value = $value;
- }
-
- public function addInEdge(ServiceReferenceGraphEdge $edge)
- {
- $this->inEdges[] = $edge;
- }
-
- public function addOutEdge(ServiceReferenceGraphEdge $edge)
- {
- $this->outEdges[] = $edge;
- }
-
- /**
- * Checks if the value of this node is an Alias.
- *
- * @return bool True if the value is an Alias instance
- */
- public function isAlias()
- {
- return $this->value instanceof Alias;
- }
-
- /**
- * Checks if the value of this node is a Definition.
- *
- * @return bool True if the value is a Definition instance
- */
- public function isDefinition()
- {
- return $this->value instanceof Definition;
- }
-
- /**
- * Returns the identifier.
- *
- * @return string
- */
- public function getId()
- {
- return $this->id;
- }
-
- /**
- * Returns the in edges.
- *
- * @return ServiceReferenceGraphEdge[]
- */
- public function getInEdges()
- {
- return $this->inEdges;
- }
-
- /**
- * Returns the out edges.
- *
- * @return ServiceReferenceGraphEdge[]
- */
- public function getOutEdges()
- {
- return $this->outEdges;
- }
-
- /**
- * Returns the value of this Node.
- *
- * @return mixed The value
- */
- public function getValue()
- {
- return $this->value;
- }
-
- /**
- * Clears all edges.
- */
- public function clear()
- {
- $this->inEdges = $this->outEdges = [];
- }
-}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php
deleted file mode 100644
index 8fd84fa..0000000
--- a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Compiler/ValidateEnvPlaceholdersPass.php
+++ /dev/null
@@ -1,120 +0,0 @@
-<?php
-
-/*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace Symfony\Component\DependencyInjection\Compiler;
-
-use Symfony\Component\Config\Definition\BaseNode;
-use Symfony\Component\Config\Definition\Exception\TreeWithoutRootNodeException;
-use Symfony\Component\Config\Definition\Processor;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Extension\ConfigurationExtensionInterface;
-use Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag;
-use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
-
-/**
- * Validates environment variable placeholders used in extension configuration with dummy values.
- *
- * @author Roland Franssen <franssen.roland@gmail.com>
- */
-class ValidateEnvPlaceholdersPass implements CompilerPassInterface
-{
- private static $typeFixtures = ['array' => [], 'bool' => false, 'float' => 0.0, 'int' => 0, 'string' => ''];
-
- private $extensionConfig = [];
-
- /**
- * {@inheritdoc}
- */
- public function process(ContainerBuilder $container)
- {
- $this->extensionConfig = [];
-
- if (!class_exists(BaseNode::class) || !$extensions = $container->getExtensions()) {
- return;
- }
-
- $resolvingBag = $container->getParameterBag();
- if (!$resolvingBag instanceof EnvPlaceholderParameterBag) {
- return;
- }
-
- $defaultBag = new ParameterBag($resolvingBag->all());
- $envTypes = $resolvingBag->getProvidedTypes();
- try {
- foreach ($resolvingBag->getEnvPlaceholders() + $resolvingBag->getUnusedEnvPlaceholders() as $env => $placeholders) {
- $values = [];
- if (false === $i = strpos($env, ':')) {
- $default = $defaultBag->has("env($env)") ? $defaultBag->get("env($env)") : self::$typeFixtures['string'];
- $defaultType = null !== $default ? self::getType($default) : 'string';
- $values[$defaultType] = $default;
- } else {
- $prefix = substr($env, 0, $i);
- foreach ($envTypes[$prefix] ?? ['string'] as $type) {
- $values[$type] = self::$typeFixtures[$type] ?? null;
- }
- }
- foreach ($placeholders as $placeholder) {
- BaseNode::setPlaceholder($placeholder, $values);
- }
- }
-
- $processor = new Processor();
-
- foreach ($extensions as $name => $extension) {
- if (!$extension instanceof ConfigurationExtensionInterface || !$config = array_filter($container->getExtensionConfig($name))) {
- // this extension has no semantic configuration or was not called
- continue;
- }
-
- $config = $resolvingBag->resolveValue($config);
-
- if (null === $configuration = $extension->getConfiguration($config, $container)) {
- continue;
- }
-
- try {
- $this->extensionConfig[$name] = $processor->processConfiguration($configuration, $config);
- } catch (TreeWithoutRootNodeException $e) {
- }
- }
- } finally {
- BaseNode::resetPlaceholders();
- }
-
- $resolvingBag->clearUnusedEnvPlaceholders();
- }
-
- /**
- * @internal
- */
- public function getExtensionConfig(): array
- {
- try {
- return $this->extensionConfig;
- } finally {
- $this->extensionConfig = [];
- }
- }
-
- private static function getType($value): string
- {
- switch ($type = \gettype($value)) {
- case 'boolean':
- return 'bool';
- case 'double':
- return 'float';
- case 'integer':
- return 'int';
- }
-
- return $type;
- }
-}