aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator')
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php87
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php93
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php30
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php144
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php69
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php36
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php49
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php51
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php84
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php69
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php72
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php147
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php28
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php42
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php35
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php27
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php47
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php35
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php27
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php29
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php37
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php33
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php37
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php27
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php32
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php50
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php27
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php35
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php27
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php28
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php39
31 files changed, 1573 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php
new file mode 100644
index 0000000..c29ca7f
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractConfigurator.php
@@ -0,0 +1,87 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Argument\ArgumentInterface;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+use Symfony\Component\DependencyInjection\Parameter;
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\ExpressionLanguage\Expression;
+
+abstract class AbstractConfigurator
+{
+ const FACTORY = 'unknown';
+
+ /** @internal */
+ protected $definition;
+
+ public function __call($method, $args)
+ {
+ if (method_exists($this, 'set'.$method)) {
+ return $this->{'set'.$method}(...$args);
+ }
+
+ throw new \BadMethodCallException(sprintf('Call to undefined method %s::%s()', \get_class($this), $method));
+ }
+
+ /**
+ * Checks that a value is valid, optionally replacing Definition and Reference configurators by their configure value.
+ *
+ * @param mixed $value
+ * @param bool $allowServices whether Definition and Reference are allowed; by default, only scalars and arrays are
+ *
+ * @return mixed the value, optionally cast to a Definition/Reference
+ */
+ public static function processValue($value, $allowServices = false)
+ {
+ if (\is_array($value)) {
+ foreach ($value as $k => $v) {
+ $value[$k] = static::processValue($v, $allowServices);
+ }
+
+ return $value;
+ }
+
+ if ($value instanceof ReferenceConfigurator) {
+ return new Reference($value->id, $value->invalidBehavior);
+ }
+
+ if ($value instanceof InlineServiceConfigurator) {
+ $def = $value->definition;
+ $value->definition = null;
+
+ return $def;
+ }
+
+ if ($value instanceof self) {
+ throw new InvalidArgumentException(sprintf('"%s()" can be used only at the root of service configuration files.', $value::FACTORY));
+ }
+
+ switch (true) {
+ case null === $value:
+ case is_scalar($value):
+ return $value;
+
+ case $value instanceof ArgumentInterface:
+ case $value instanceof Definition:
+ case $value instanceof Expression:
+ case $value instanceof Parameter:
+ case $value instanceof Reference:
+ if ($allowServices) {
+ return $value;
+ }
+ }
+
+ throw new InvalidArgumentException(sprintf('Cannot use values of type "%s" in service configuration files.', \is_object($value) ? \get_class($value) : \gettype($value)));
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php
new file mode 100644
index 0000000..9d3305e
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AbstractServiceConfigurator.php
@@ -0,0 +1,93 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
+
+abstract class AbstractServiceConfigurator extends AbstractConfigurator
+{
+ protected $parent;
+ protected $id;
+ private $defaultTags = [];
+
+ public function __construct(ServicesConfigurator $parent, Definition $definition, string $id = null, array $defaultTags = [])
+ {
+ $this->parent = $parent;
+ $this->definition = $definition;
+ $this->id = $id;
+ $this->defaultTags = $defaultTags;
+ }
+
+ public function __destruct()
+ {
+ // default tags should be added last
+ foreach ($this->defaultTags as $name => $attributes) {
+ foreach ($attributes as $attributes) {
+ $this->definition->addTag($name, $attributes);
+ }
+ }
+ $this->defaultTags = [];
+ }
+
+ /**
+ * Registers a service.
+ */
+ final public function set(string $id, string $class = null): ServiceConfigurator
+ {
+ $this->__destruct();
+
+ return $this->parent->set($id, $class);
+ }
+
+ /**
+ * Creates an alias.
+ */
+ final public function alias(string $id, string $referencedId): AliasConfigurator
+ {
+ $this->__destruct();
+
+ return $this->parent->alias($id, $referencedId);
+ }
+
+ /**
+ * Registers a PSR-4 namespace using a glob pattern.
+ */
+ final public function load(string $namespace, string $resource): PrototypeConfigurator
+ {
+ $this->__destruct();
+
+ return $this->parent->load($namespace, $resource);
+ }
+
+ /**
+ * Gets an already defined service definition.
+ *
+ * @throws ServiceNotFoundException if the service definition does not exist
+ */
+ final public function get(string $id): ServiceConfigurator
+ {
+ $this->__destruct();
+
+ return $this->parent->get($id);
+ }
+
+ /**
+ * Registers a service.
+ */
+ final public function __invoke(string $id, string $class = null): ServiceConfigurator
+ {
+ $this->__destruct();
+
+ return $this->parent->set($id, $class);
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php
new file mode 100644
index 0000000..cb00f58
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/AliasConfigurator.php
@@ -0,0 +1,30 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Alias;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class AliasConfigurator extends AbstractServiceConfigurator
+{
+ const FACTORY = 'alias';
+
+ use Traits\PublicTrait;
+
+ public function __construct(ServicesConfigurator $parent, Alias $alias)
+ {
+ $this->parent = $parent;
+ $this->definition = $alias;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php
new file mode 100644
index 0000000..712d8c9
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ContainerConfigurator.php
@@ -0,0 +1,144 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Argument\IteratorArgument;
+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\Extension\ExtensionInterface;
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+use Symfony\Component\ExpressionLanguage\Expression;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ContainerConfigurator extends AbstractConfigurator
+{
+ const FACTORY = 'container';
+
+ private $container;
+ private $loader;
+ private $instanceof;
+ private $path;
+ private $file;
+ private $anonymousCount = 0;
+
+ public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path, string $file)
+ {
+ $this->container = $container;
+ $this->loader = $loader;
+ $this->instanceof = &$instanceof;
+ $this->path = $path;
+ $this->file = $file;
+ }
+
+ final public function extension(string $namespace, array $config)
+ {
+ if (!$this->container->hasExtension($namespace)) {
+ $extensions = array_filter(array_map(function (ExtensionInterface $ext) { return $ext->getAlias(); }, $this->container->getExtensions()));
+ throw new InvalidArgumentException(sprintf('There is no extension able to load the configuration for "%s" (in %s). Looked for namespace "%s", found %s', $namespace, $this->file, $namespace, $extensions ? sprintf('"%s"', implode('", "', $extensions)) : 'none'));
+ }
+
+ $this->container->loadFromExtension($namespace, static::processValue($config));
+ }
+
+ final public function import(string $resource, string $type = null, $ignoreErrors = false)
+ {
+ $this->loader->setCurrentDir(\dirname($this->path));
+ $this->loader->import($resource, $type, $ignoreErrors, $this->file);
+ }
+
+ final public function parameters(): ParametersConfigurator
+ {
+ return new ParametersConfigurator($this->container);
+ }
+
+ final public function services(): ServicesConfigurator
+ {
+ return new ServicesConfigurator($this->container, $this->loader, $this->instanceof, $this->path, $this->anonymousCount);
+ }
+}
+
+/**
+ * Creates a service reference.
+ */
+function ref(string $id): ReferenceConfigurator
+{
+ return new ReferenceConfigurator($id);
+}
+
+/**
+ * Creates an inline service.
+ */
+function inline(string $class = null): InlineServiceConfigurator
+{
+ return new InlineServiceConfigurator(new Definition($class));
+}
+
+/**
+ * Creates a service locator.
+ *
+ * @param ReferenceConfigurator[] $values
+ */
+function service_locator(array $values): ServiceLocatorArgument
+{
+ return new ServiceLocatorArgument(AbstractConfigurator::processValue($values, true));
+}
+
+/**
+ * Creates a lazy iterator.
+ *
+ * @param ReferenceConfigurator[] $values
+ */
+function iterator(array $values): IteratorArgument
+{
+ return new IteratorArgument(AbstractConfigurator::processValue($values, true));
+}
+
+/**
+ * Creates a lazy iterator by tag name.
+ *
+ * @deprecated since Symfony 4.4, to be removed in 5.0, use "tagged_iterator" instead.
+ */
+function tagged(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): TaggedIteratorArgument
+{
+ @trigger_error(__NAMESPACE__.'\tagged() is deprecated since Symfony 4.4 and will be removed in 5.0, use '.__NAMESPACE__.'\tagged_iterator() instead.', E_USER_DEPRECATED);
+
+ return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod);
+}
+
+/**
+ * Creates a lazy iterator by tag name.
+ */
+function tagged_iterator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null, string $defaultPriorityMethod = null): TaggedIteratorArgument
+{
+ return new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, false, $defaultPriorityMethod);
+}
+
+/**
+ * Creates a service locator by tag name.
+ */
+function tagged_locator(string $tag, string $indexAttribute = null, string $defaultIndexMethod = null): ServiceLocatorArgument
+{
+ return new ServiceLocatorArgument(new TaggedIteratorArgument($tag, $indexAttribute, $defaultIndexMethod, true));
+}
+
+/**
+ * Creates an expression.
+ */
+function expr(string $expression): Expression
+{
+ return new Expression($expression);
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php
new file mode 100644
index 0000000..cd9088f
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/DefaultsConfigurator.php
@@ -0,0 +1,69 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class DefaultsConfigurator extends AbstractServiceConfigurator
+{
+ const FACTORY = 'defaults';
+
+ use Traits\AutoconfigureTrait;
+ use Traits\AutowireTrait;
+ use Traits\BindTrait;
+ use Traits\PublicTrait;
+
+ private $path;
+
+ public function __construct(ServicesConfigurator $parent, Definition $definition, string $path = null)
+ {
+ parent::__construct($parent, $definition, null, []);
+
+ $this->path = $path;
+ }
+
+ /**
+ * Adds a tag for this definition.
+ *
+ * @return $this
+ *
+ * @throws InvalidArgumentException when an invalid tag name or attribute is provided
+ */
+ final public function tag(string $name, array $attributes = []): self
+ {
+ if ('' === $name) {
+ throw new InvalidArgumentException('The tag name in "_defaults" must be a non-empty string.');
+ }
+
+ foreach ($attributes as $attribute => $value) {
+ if (null !== $value && !is_scalar($value)) {
+ throw new InvalidArgumentException(sprintf('Tag "%s", attribute "%s" in "_defaults" must be of a scalar-type.', $name, $attribute));
+ }
+ }
+
+ $this->definition->addTag($name, $attributes);
+
+ return $this;
+ }
+
+ /**
+ * Defines an instanceof-conditional to be applied to following service definitions.
+ */
+ final public function instanceof(string $fqcn): InstanceofConfigurator
+ {
+ return $this->parent->instanceof($fqcn);
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php
new file mode 100644
index 0000000..362b374
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InlineServiceConfigurator.php
@@ -0,0 +1,36 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Definition;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class InlineServiceConfigurator extends AbstractConfigurator
+{
+ const FACTORY = 'inline';
+
+ use Traits\ArgumentTrait;
+ use Traits\AutowireTrait;
+ use Traits\BindTrait;
+ use Traits\FactoryTrait;
+ use Traits\FileTrait;
+ use Traits\LazyTrait;
+ use Traits\ParentTrait;
+ use Traits\TagTrait;
+
+ public function __construct(Definition $definition)
+ {
+ $this->definition = $definition;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php
new file mode 100644
index 0000000..f75e176
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/InstanceofConfigurator.php
@@ -0,0 +1,49 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Definition;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class InstanceofConfigurator extends AbstractServiceConfigurator
+{
+ const FACTORY = 'instanceof';
+
+ use Traits\AutowireTrait;
+ use Traits\CallTrait;
+ use Traits\ConfiguratorTrait;
+ use Traits\LazyTrait;
+ use Traits\PropertyTrait;
+ use Traits\PublicTrait;
+ use Traits\ShareTrait;
+ use Traits\TagTrait;
+ use Traits\BindTrait;
+
+ private $path;
+
+ public function __construct(ServicesConfigurator $parent, Definition $definition, string $id, string $path = null)
+ {
+ parent::__construct($parent, $definition, $id, []);
+
+ $this->path = $path;
+ }
+
+ /**
+ * Defines an instanceof-conditional to be applied to following service definitions.
+ */
+ final public function instanceof(string $fqcn): self
+ {
+ return $this->parent->instanceof($fqcn);
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php
new file mode 100644
index 0000000..a88d28e
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ParametersConfigurator.php
@@ -0,0 +1,51 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ParametersConfigurator extends AbstractConfigurator
+{
+ const FACTORY = 'parameters';
+
+ private $container;
+
+ public function __construct(ContainerBuilder $container)
+ {
+ $this->container = $container;
+ }
+
+ /**
+ * Creates a parameter.
+ *
+ * @return $this
+ */
+ final public function set(string $name, $value): self
+ {
+ $this->container->setParameter($name, static::processValue($value, true));
+
+ return $this;
+ }
+
+ /**
+ * Creates a parameter.
+ *
+ * @return $this
+ */
+ final public function __invoke(string $name, $value): self
+ {
+ return $this->set($name, $value);
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php
new file mode 100644
index 0000000..3cd56e0
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/PrototypeConfigurator.php
@@ -0,0 +1,84 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class PrototypeConfigurator extends AbstractServiceConfigurator
+{
+ const FACTORY = 'load';
+
+ use Traits\AbstractTrait;
+ use Traits\ArgumentTrait;
+ use Traits\AutoconfigureTrait;
+ use Traits\AutowireTrait;
+ use Traits\BindTrait;
+ use Traits\CallTrait;
+ use Traits\ConfiguratorTrait;
+ use Traits\DeprecateTrait;
+ use Traits\FactoryTrait;
+ use Traits\LazyTrait;
+ use Traits\ParentTrait;
+ use Traits\PropertyTrait;
+ use Traits\PublicTrait;
+ use Traits\ShareTrait;
+ use Traits\TagTrait;
+
+ private $loader;
+ private $resource;
+ private $excludes;
+ private $allowParent;
+
+ public function __construct(ServicesConfigurator $parent, PhpFileLoader $loader, Definition $defaults, string $namespace, string $resource, bool $allowParent)
+ {
+ $definition = new Definition();
+ $definition->setPublic($defaults->isPublic());
+ $definition->setAutowired($defaults->isAutowired());
+ $definition->setAutoconfigured($defaults->isAutoconfigured());
+ $definition->setBindings($defaults->getBindings());
+ $definition->setChanges([]);
+
+ $this->loader = $loader;
+ $this->resource = $resource;
+ $this->allowParent = $allowParent;
+
+ parent::__construct($parent, $definition, $namespace, $defaults->getTags());
+ }
+
+ public function __destruct()
+ {
+ parent::__destruct();
+
+ if ($this->loader) {
+ $this->loader->registerClasses($this->definition, $this->id, $this->resource, $this->excludes);
+ }
+ $this->loader = null;
+ }
+
+ /**
+ * Excludes files from registration using glob patterns.
+ *
+ * @param string[]|string $excludes
+ *
+ * @return $this
+ */
+ final public function exclude($excludes): self
+ {
+ $this->excludes = (array) $excludes;
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php
new file mode 100644
index 0000000..fa04253
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ReferenceConfigurator.php
@@ -0,0 +1,69 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ReferenceConfigurator extends AbstractConfigurator
+{
+ /** @internal */
+ protected $id;
+
+ /** @internal */
+ protected $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE;
+
+ public function __construct(string $id)
+ {
+ $this->id = $id;
+ }
+
+ /**
+ * @return $this
+ */
+ final public function ignoreOnInvalid(): self
+ {
+ $this->invalidBehavior = ContainerInterface::IGNORE_ON_INVALID_REFERENCE;
+
+ return $this;
+ }
+
+ /**
+ * @return $this
+ */
+ final public function nullOnInvalid(): self
+ {
+ $this->invalidBehavior = ContainerInterface::NULL_ON_INVALID_REFERENCE;
+
+ return $this;
+ }
+
+ /**
+ * @return $this
+ */
+ final public function ignoreOnUninitialized(): self
+ {
+ $this->invalidBehavior = ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE;
+
+ return $this;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return $this->id;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php
new file mode 100644
index 0000000..f1a6af7
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServiceConfigurator.php
@@ -0,0 +1,72 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\ChildDefinition;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ServiceConfigurator extends AbstractServiceConfigurator
+{
+ const FACTORY = 'services';
+
+ use Traits\AbstractTrait;
+ use Traits\ArgumentTrait;
+ use Traits\AutoconfigureTrait;
+ use Traits\AutowireTrait;
+ use Traits\BindTrait;
+ use Traits\CallTrait;
+ use Traits\ClassTrait;
+ use Traits\ConfiguratorTrait;
+ use Traits\DecorateTrait;
+ use Traits\DeprecateTrait;
+ use Traits\FactoryTrait;
+ use Traits\FileTrait;
+ use Traits\LazyTrait;
+ use Traits\ParentTrait;
+ use Traits\PropertyTrait;
+ use Traits\PublicTrait;
+ use Traits\ShareTrait;
+ use Traits\SyntheticTrait;
+ use Traits\TagTrait;
+
+ private $container;
+ private $instanceof;
+ private $allowParent;
+ private $path;
+
+ public function __construct(ContainerBuilder $container, array $instanceof, bool $allowParent, ServicesConfigurator $parent, Definition $definition, $id, array $defaultTags, string $path = null)
+ {
+ $this->container = $container;
+ $this->instanceof = $instanceof;
+ $this->allowParent = $allowParent;
+ $this->path = $path;
+
+ parent::__construct($parent, $definition, $id, $defaultTags);
+ }
+
+ public function __destruct()
+ {
+ parent::__destruct();
+
+ $this->container->removeBindings($this->id);
+
+ if (!$this->definition instanceof ChildDefinition) {
+ $this->container->setDefinition($this->id, $this->definition->setInstanceofConditionals($this->instanceof));
+ } else {
+ $this->container->setDefinition($this->id, $this->definition);
+ }
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php
new file mode 100644
index 0000000..f0fdde8
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/ServicesConfigurator.php
@@ -0,0 +1,147 @@
+<?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\Loader\Configurator;
+
+use Symfony\Component\DependencyInjection\Alias;
+use Symfony\Component\DependencyInjection\ChildDefinition;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Definition;
+use Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException;
+use Symfony\Component\DependencyInjection\Loader\PhpFileLoader;
+
+/**
+ * @author Nicolas Grekas <p@tchwork.com>
+ */
+class ServicesConfigurator extends AbstractConfigurator
+{
+ const FACTORY = 'services';
+
+ private $defaults;
+ private $container;
+ private $loader;
+ private $instanceof;
+ private $path;
+ private $anonymousHash;
+ private $anonymousCount;
+
+ public function __construct(ContainerBuilder $container, PhpFileLoader $loader, array &$instanceof, string $path = null, int &$anonymousCount = 0)
+ {
+ $this->defaults = new Definition();
+ $this->container = $container;
+ $this->loader = $loader;
+ $this->instanceof = &$instanceof;
+ $this->path = $path;
+ $this->anonymousHash = ContainerBuilder::hash($path ?: mt_rand());
+ $this->anonymousCount = &$anonymousCount;
+ $instanceof = [];
+ }
+
+ /**
+ * Defines a set of defaults for following service definitions.
+ */
+ final public function defaults(): DefaultsConfigurator
+ {
+ return new DefaultsConfigurator($this, $this->defaults = new Definition(), $this->path);
+ }
+
+ /**
+ * Defines an instanceof-conditional to be applied to following service definitions.
+ */
+ final public function instanceof(string $fqcn): InstanceofConfigurator
+ {
+ $this->instanceof[$fqcn] = $definition = new ChildDefinition('');
+
+ return new InstanceofConfigurator($this, $definition, $fqcn, $this->path);
+ }
+
+ /**
+ * Registers a service.
+ *
+ * @param string|null $id The service id, or null to create an anonymous service
+ * @param string|null $class The class of the service, or null when $id is also the class name
+ */
+ final public function set(?string $id, string $class = null): ServiceConfigurator
+ {
+ $defaults = $this->defaults;
+ $allowParent = !$defaults->getChanges() && empty($this->instanceof);
+
+ $definition = new Definition();
+
+ if (null === $id) {
+ if (!$class) {
+ throw new \LogicException('Anonymous services must have a class name.');
+ }
+
+ $id = sprintf('.%d_%s', ++$this->anonymousCount, preg_replace('/^.*\\\\/', '', $class).'~'.$this->anonymousHash);
+ $definition->setPublic(false);
+ } else {
+ $definition->setPublic($defaults->isPublic());
+ }
+
+ $definition->setAutowired($defaults->isAutowired());
+ $definition->setAutoconfigured($defaults->isAutoconfigured());
+ $definition->setBindings($defaults->getBindings());
+ $definition->setChanges([]);
+
+ $configurator = new ServiceConfigurator($this->container, $this->instanceof, $allowParent, $this, $definition, $id, $defaults->getTags(), $this->path);
+
+ return null !== $class ? $configurator->class($class) : $configurator;
+ }
+
+ /**
+ * Creates an alias.
+ */
+ final public function alias(string $id, string $referencedId): AliasConfigurator
+ {
+ $ref = static::processValue($referencedId, true);
+ $alias = new Alias((string) $ref, $this->defaults->isPublic());
+ $this->container->setAlias($id, $alias);
+
+ return new AliasConfigurator($this, $alias);
+ }
+
+ /**
+ * Registers a PSR-4 namespace using a glob pattern.
+ */
+ final public function load(string $namespace, string $resource): PrototypeConfigurator
+ {
+ $allowParent = !$this->defaults->getChanges() && empty($this->instanceof);
+
+ return new PrototypeConfigurator($this, $this->loader, $this->defaults, $namespace, $resource, $allowParent);
+ }
+
+ /**
+ * Gets an already defined service definition.
+ *
+ * @throws ServiceNotFoundException if the service definition does not exist
+ */
+ final public function get(string $id): ServiceConfigurator
+ {
+ $allowParent = !$this->defaults->getChanges() && empty($this->instanceof);
+ $definition = $this->container->getDefinition($id);
+
+ return new ServiceConfigurator($this->container, $definition->getInstanceofConditionals(), $allowParent, $this, $definition, $id, []);
+ }
+
+ /**
+ * Registers a service.
+ */
+ final public function __invoke(string $id, string $class = null): ServiceConfigurator
+ {
+ return $this->set($id, $class);
+ }
+
+ public function __destruct()
+ {
+ $this->loader->registerAliasesForSinglyImplementedInterfaces();
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php
new file mode 100644
index 0000000..82ba21d
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AbstractTrait.php
@@ -0,0 +1,28 @@
+<?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\Loader\Configurator\Traits;
+
+trait AbstractTrait
+{
+ /**
+ * Whether this definition is abstract, that means it merely serves as a
+ * template for other definitions.
+ *
+ * @return $this
+ */
+ final public function abstract(bool $abstract = true): self
+ {
+ $this->definition->setAbstract($abstract);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php
new file mode 100644
index 0000000..5c9a475
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ArgumentTrait.php
@@ -0,0 +1,42 @@
+<?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\Loader\Configurator\Traits;
+
+trait ArgumentTrait
+{
+ /**
+ * Sets the arguments to pass to the service constructor/factory method.
+ *
+ * @return $this
+ */
+ final public function args(array $arguments): self
+ {
+ $this->definition->setArguments(static::processValue($arguments, true));
+
+ return $this;
+ }
+
+ /**
+ * Sets one argument to pass to the service constructor/factory method.
+ *
+ * @param string|int $key
+ * @param mixed $value
+ *
+ * @return $this
+ */
+ final public function arg($key, $value): self
+ {
+ $this->definition->setArgument($key, static::processValue($value, true));
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php
new file mode 100644
index 0000000..836f458
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutoconfigureTrait.php
@@ -0,0 +1,35 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\ChildDefinition;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait AutoconfigureTrait
+{
+ /**
+ * Sets whether or not instanceof conditionals should be prepended with a global set.
+ *
+ * @return $this
+ *
+ * @throws InvalidArgumentException when a parent is already set
+ */
+ final public function autoconfigure(bool $autoconfigured = true): self
+ {
+ if ($autoconfigured && $this->definition instanceof ChildDefinition) {
+ throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also have "autoconfigure". Try disabling autoconfiguration for the service.', $this->id));
+ }
+ $this->definition->setAutoconfigured($autoconfigured);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php
new file mode 100644
index 0000000..2837a02
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/AutowireTrait.php
@@ -0,0 +1,27 @@
+<?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\Loader\Configurator\Traits;
+
+trait AutowireTrait
+{
+ /**
+ * Enables/disables autowiring.
+ *
+ * @return $this
+ */
+ final public function autowire(bool $autowired = true): self
+ {
+ $this->definition->setAutowired($autowired);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php
new file mode 100644
index 0000000..1328494
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/BindTrait.php
@@ -0,0 +1,47 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\Argument\BoundArgument;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+use Symfony\Component\DependencyInjection\Loader\Configurator\DefaultsConfigurator;
+use Symfony\Component\DependencyInjection\Loader\Configurator\InstanceofConfigurator;
+use Symfony\Component\DependencyInjection\Reference;
+
+trait BindTrait
+{
+ /**
+ * Sets bindings.
+ *
+ * Bindings map $named or FQCN arguments to values that should be
+ * injected in the matching parameters (of the constructor, of methods
+ * called and of controller actions).
+ *
+ * @param string $nameOrFqcn A parameter name with its "$" prefix, or a FQCN
+ * @param mixed $valueOrRef The value or reference to bind
+ *
+ * @return $this
+ */
+ final public function bind(string $nameOrFqcn, $valueOrRef): self
+ {
+ $valueOrRef = static::processValue($valueOrRef, true);
+ if (!preg_match('/^(?:(?:array|bool|float|int|string)[ \t]*+)?\$/', $nameOrFqcn) && !$valueOrRef instanceof Reference) {
+ throw new InvalidArgumentException(sprintf('Invalid binding for service "%s": named arguments must start with a "$", and FQCN must map to references. Neither applies to binding "%s".', $this->id, $nameOrFqcn));
+ }
+ $bindings = $this->definition->getBindings();
+ $type = $this instanceof DefaultsConfigurator ? BoundArgument::DEFAULTS_BINDING : ($this instanceof InstanceofConfigurator ? BoundArgument::INSTANCEOF_BINDING : BoundArgument::SERVICE_BINDING);
+ $bindings[$nameOrFqcn] = new BoundArgument($valueOrRef, true, $type, $this->path ?? null);
+ $this->definition->setBindings($bindings);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php
new file mode 100644
index 0000000..28f92d2
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/CallTrait.php
@@ -0,0 +1,35 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait CallTrait
+{
+ /**
+ * Adds a method to call after service initialization.
+ *
+ * @param string $method The method name to call
+ * @param array $arguments An array of arguments to pass to the method call
+ * @param bool $returnsClone Whether the call returns the service instance or not
+ *
+ * @return $this
+ *
+ * @throws InvalidArgumentException on empty $method param
+ */
+ final public function call(string $method, array $arguments = [], bool $returnsClone = false): self
+ {
+ $this->definition->addMethodCall($method, static::processValue($arguments, true), $returnsClone);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php
new file mode 100644
index 0000000..20da791
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ClassTrait.php
@@ -0,0 +1,27 @@
+<?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\Loader\Configurator\Traits;
+
+trait ClassTrait
+{
+ /**
+ * Sets the service class.
+ *
+ * @return $this
+ */
+ final public function class(?string $class): self
+ {
+ $this->definition->setClass($class);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php
new file mode 100644
index 0000000..25d363c
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ConfiguratorTrait.php
@@ -0,0 +1,29 @@
+<?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\Loader\Configurator\Traits;
+
+trait ConfiguratorTrait
+{
+ /**
+ * Sets a configurator to call after the service is fully initialized.
+ *
+ * @param string|array $configurator A PHP callable reference
+ *
+ * @return $this
+ */
+ final public function configurator($configurator): self
+ {
+ $this->definition->setConfigurator(static::processValue($configurator, true));
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php
new file mode 100644
index 0000000..222cf75
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DecorateTrait.php
@@ -0,0 +1,37 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait DecorateTrait
+{
+ /**
+ * Sets the service that this service is decorating.
+ *
+ * @param string|null $id The decorated service id, use null to remove decoration
+ * @param string|null $renamedId The new decorated service id
+ * @param int $priority The priority of decoration
+ * @param int $invalidBehavior The behavior to adopt when decorated is invalid
+ *
+ * @return $this
+ *
+ * @throws InvalidArgumentException in case the decorated service id and the new decorated service id are equals
+ */
+ final public function decorate(?string $id, string $renamedId = null, int $priority = 0, int $invalidBehavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE): self
+ {
+ $this->definition->setDecoratedService($id, $renamedId, $priority, $invalidBehavior);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php
new file mode 100644
index 0000000..b2d5b0e
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/DeprecateTrait.php
@@ -0,0 +1,33 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait DeprecateTrait
+{
+ /**
+ * Whether this definition is deprecated, that means it should not be called anymore.
+ *
+ * @param string $template Template message to use if the definition is deprecated
+ *
+ * @return $this
+ *
+ * @throws InvalidArgumentException when the message template is invalid
+ */
+ final public function deprecate(string $template = null): self
+ {
+ $this->definition->setDeprecated(true, $template);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php
new file mode 100644
index 0000000..3834d72
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FactoryTrait.php
@@ -0,0 +1,37 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait FactoryTrait
+{
+ /**
+ * Sets a factory.
+ *
+ * @param string|array $factory A PHP callable reference
+ *
+ * @return $this
+ */
+ final public function factory($factory): self
+ {
+ if (\is_string($factory) && 1 === substr_count($factory, ':')) {
+ $factoryParts = explode(':', $factory);
+
+ throw new InvalidArgumentException(sprintf('Invalid factory "%s": the "service:method" notation is not available when using PHP-based DI configuration. Use "[ref(\'%s\'), \'%s\']" instead.', $factory, $factoryParts[0], $factoryParts[1]));
+ }
+
+ $this->definition->setFactory(static::processValue($factory, true));
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php
new file mode 100644
index 0000000..5f42aef
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/FileTrait.php
@@ -0,0 +1,27 @@
+<?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\Loader\Configurator\Traits;
+
+trait FileTrait
+{
+ /**
+ * Sets a file to require before creating the service.
+ *
+ * @return $this
+ */
+ final public function file(string $file): self
+ {
+ $this->definition->setFile($file);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php
new file mode 100644
index 0000000..2829def
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/LazyTrait.php
@@ -0,0 +1,32 @@
+<?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\Loader\Configurator\Traits;
+
+trait LazyTrait
+{
+ /**
+ * Sets the lazy flag of this service.
+ *
+ * @param bool|string $lazy A FQCN to derivate the lazy proxy from or `true` to make it extend from the definition's class
+ *
+ * @return $this
+ */
+ final public function lazy($lazy = true): self
+ {
+ $this->definition->setLazy((bool) $lazy);
+ if (\is_string($lazy)) {
+ $this->definition->addTag('proxy', ['interface' => $lazy]);
+ }
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php
new file mode 100644
index 0000000..7488a38
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ParentTrait.php
@@ -0,0 +1,50 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\ChildDefinition;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait ParentTrait
+{
+ /**
+ * Sets the Definition to inherit from.
+ *
+ * @return $this
+ *
+ * @throws InvalidArgumentException when parent cannot be set
+ */
+ final public function parent(string $parent): self
+ {
+ if (!$this->allowParent) {
+ throw new InvalidArgumentException(sprintf('A parent cannot be defined when either "_instanceof" or "_defaults" are also defined for service prototype "%s".', $this->id));
+ }
+
+ if ($this->definition instanceof ChildDefinition) {
+ $this->definition->setParent($parent);
+ } elseif ($this->definition->isAutoconfigured()) {
+ throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also have "autoconfigure". Try disabling autoconfiguration for the service.', $this->id));
+ } elseif ($this->definition->getBindings()) {
+ throw new InvalidArgumentException(sprintf('The service "%s" cannot have a "parent" and also "bind" arguments.', $this->id));
+ } else {
+ // cast Definition to ChildDefinition
+ $definition = serialize($this->definition);
+ $definition = substr_replace($definition, '53', 2, 2);
+ $definition = substr_replace($definition, 'Child', 44, 0);
+ $definition = unserialize($definition);
+
+ $this->definition = $definition->setParent($parent);
+ }
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php
new file mode 100644
index 0000000..10fdcfb
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PropertyTrait.php
@@ -0,0 +1,27 @@
+<?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\Loader\Configurator\Traits;
+
+trait PropertyTrait
+{
+ /**
+ * Sets a specific property.
+ *
+ * @return $this
+ */
+ final public function property(string $name, $value): self
+ {
+ $this->definition->setProperty($name, static::processValue($value, true));
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php
new file mode 100644
index 0000000..f15756c
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/PublicTrait.php
@@ -0,0 +1,35 @@
+<?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\Loader\Configurator\Traits;
+
+trait PublicTrait
+{
+ /**
+ * @return $this
+ */
+ final public function public(): self
+ {
+ $this->definition->setPublic(true);
+
+ return $this;
+ }
+
+ /**
+ * @return $this
+ */
+ final public function private(): self
+ {
+ $this->definition->setPublic(false);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php
new file mode 100644
index 0000000..16fde0f
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/ShareTrait.php
@@ -0,0 +1,27 @@
+<?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\Loader\Configurator\Traits;
+
+trait ShareTrait
+{
+ /**
+ * Sets if the service must be shared or not.
+ *
+ * @return $this
+ */
+ final public function share(bool $shared = true): self
+ {
+ $this->definition->setShared($shared);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php
new file mode 100644
index 0000000..cb08b11
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/SyntheticTrait.php
@@ -0,0 +1,28 @@
+<?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\Loader\Configurator\Traits;
+
+trait SyntheticTrait
+{
+ /**
+ * Sets whether this definition is synthetic, that is not constructed by the
+ * container, but dynamically injected.
+ *
+ * @return $this
+ */
+ final public function synthetic(bool $synthetic = true): self
+ {
+ $this->definition->setSynthetic($synthetic);
+
+ return $this;
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php
new file mode 100644
index 0000000..f4d5f00
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Loader/Configurator/Traits/TagTrait.php
@@ -0,0 +1,39 @@
+<?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\Loader\Configurator\Traits;
+
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+trait TagTrait
+{
+ /**
+ * Adds a tag for this definition.
+ *
+ * @return $this
+ */
+ final public function tag(string $name, array $attributes = []): self
+ {
+ if ('' === $name) {
+ throw new InvalidArgumentException(sprintf('The tag name for service "%s" must be a non-empty string.', $this->id));
+ }
+
+ foreach ($attributes as $attribute => $value) {
+ if (!is_scalar($value) && null !== $value) {
+ throw new InvalidArgumentException(sprintf('A tag attribute must be of a scalar-type for service "%s", tag "%s", attribute "%s".', $this->id, $name, $attribute));
+ }
+ }
+
+ $this->definition->addTag($name, $attributes);
+
+ return $this;
+ }
+}