aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension')
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php30
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php141
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php52
-rw-r--r--srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php22
4 files changed, 245 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.php
new file mode 100644
index 0000000..c3bd842
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ConfigurationExtensionInterface.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\Extension;
+
+use Symfony\Component\Config\Definition\ConfigurationInterface;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+
+/**
+ * ConfigurationExtensionInterface is the interface implemented by container extension classes.
+ *
+ * @author Kevin Bond <kevinbond@gmail.com>
+ */
+interface ConfigurationExtensionInterface
+{
+ /**
+ * Returns extension configuration.
+ *
+ * @return ConfigurationInterface|null The configuration or null
+ */
+ public function getConfiguration(array $config, ContainerBuilder $container);
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php
new file mode 100644
index 0000000..21580f6
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/Extension.php
@@ -0,0 +1,141 @@
+<?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\Extension;
+
+use Symfony\Component\Config\Definition\ConfigurationInterface;
+use Symfony\Component\Config\Definition\Processor;
+use Symfony\Component\DependencyInjection\Container;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Exception\BadMethodCallException;
+use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException;
+
+/**
+ * Provides useful features shared by many extensions.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+abstract class Extension implements ExtensionInterface, ConfigurationExtensionInterface
+{
+ private $processedConfigs = [];
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getXsdValidationBasePath()
+ {
+ return false;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getNamespace()
+ {
+ return 'http://example.org/schema/dic/'.$this->getAlias();
+ }
+
+ /**
+ * Returns the recommended alias to use in XML.
+ *
+ * This alias is also the mandatory prefix to use when using YAML.
+ *
+ * This convention is to remove the "Extension" postfix from the class
+ * name and then lowercase and underscore the result. So:
+ *
+ * AcmeHelloExtension
+ *
+ * becomes
+ *
+ * acme_hello
+ *
+ * This can be overridden in a sub-class to specify the alias manually.
+ *
+ * @return string The alias
+ *
+ * @throws BadMethodCallException When the extension name does not follow conventions
+ */
+ public function getAlias()
+ {
+ $className = \get_class($this);
+ if ('Extension' != substr($className, -9)) {
+ throw new BadMethodCallException('This extension does not follow the naming convention; you must overwrite the getAlias() method.');
+ }
+ $classBaseName = substr(strrchr($className, '\\'), 1, -9);
+
+ return Container::underscore($classBaseName);
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getConfiguration(array $config, ContainerBuilder $container)
+ {
+ $class = \get_class($this);
+
+ if (false !== strpos($class, "\0")) {
+ return null; // ignore anonymous classes
+ }
+
+ $class = substr_replace($class, '\Configuration', strrpos($class, '\\'));
+ $class = $container->getReflectionClass($class);
+
+ if (!$class) {
+ return null;
+ }
+
+ if (!$class->implementsInterface(ConfigurationInterface::class)) {
+ @trigger_error(sprintf('Not implementing "%s" in the extension configuration class "%s" is deprecated since Symfony 4.1.', ConfigurationInterface::class, $class->getName()), E_USER_DEPRECATED);
+ //throw new LogicException(sprintf('The extension configuration class "%s" must implement "%s".', $class->getName(), ConfigurationInterface::class));
+
+ return null;
+ }
+
+ if (!($constructor = $class->getConstructor()) || !$constructor->getNumberOfRequiredParameters()) {
+ return $class->newInstance();
+ }
+
+ return null;
+ }
+
+ final protected function processConfiguration(ConfigurationInterface $configuration, array $configs): array
+ {
+ $processor = new Processor();
+
+ return $this->processedConfigs[] = $processor->processConfiguration($configuration, $configs);
+ }
+
+ /**
+ * @internal
+ */
+ final public function getProcessedConfigs(): array
+ {
+ try {
+ return $this->processedConfigs;
+ } finally {
+ $this->processedConfigs = [];
+ }
+ }
+
+ /**
+ * @return bool Whether the configuration is enabled
+ *
+ * @throws InvalidArgumentException When the config is not enableable
+ */
+ protected function isConfigEnabled(ContainerBuilder $container, array $config)
+ {
+ if (!\array_key_exists('enabled', $config)) {
+ throw new InvalidArgumentException("The config array has no 'enabled' key.");
+ }
+
+ return (bool) $container->getParameterBag()->resolveValue($config['enabled']);
+ }
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php
new file mode 100644
index 0000000..6a7a2cf
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/ExtensionInterface.php
@@ -0,0 +1,52 @@
+<?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\Extension;
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+
+/**
+ * ExtensionInterface is the interface implemented by container extension classes.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+interface ExtensionInterface
+{
+ /**
+ * Loads a specific configuration.
+ *
+ * @throws \InvalidArgumentException When provided tag is not defined in this extension
+ */
+ public function load(array $configs, ContainerBuilder $container);
+
+ /**
+ * Returns the namespace to be used for this extension (XML namespace).
+ *
+ * @return string The XML namespace
+ */
+ public function getNamespace();
+
+ /**
+ * Returns the base path for the XSD files.
+ *
+ * @return string|false
+ */
+ public function getXsdValidationBasePath();
+
+ /**
+ * Returns the recommended alias to use in XML.
+ *
+ * This alias is also the mandatory prefix to use when using YAML.
+ *
+ * @return string The alias
+ */
+ public function getAlias();
+}
diff --git a/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php
new file mode 100644
index 0000000..5bd18d7
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/symfony/dependency-injection/Extension/PrependExtensionInterface.php
@@ -0,0 +1,22 @@
+<?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\Extension;
+
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+
+interface PrependExtensionInterface
+{
+ /**
+ * Allow an extension to prepend the extension configurations.
+ */
+ public function prepend(ContainerBuilder $container);
+}