Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / vendor / symfony / routing / DependencyInjection / RoutingResolverPass.php
diff --git a/vendor/symfony/routing/DependencyInjection/RoutingResolverPass.php b/vendor/symfony/routing/DependencyInjection/RoutingResolverPass.php
new file mode 100644 (file)
index 0000000..4af0a5a
--- /dev/null
@@ -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\Routing\DependencyInjection;
+
+use Symfony\Component\DependencyInjection\Reference;
+use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
+use Symfony\Component\DependencyInjection\Compiler\PriorityTaggedServiceTrait;
+
+/**
+ * Adds tagged routing.loader services to routing.resolver service.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class RoutingResolverPass implements CompilerPassInterface
+{
+    use PriorityTaggedServiceTrait;
+
+    private $resolverServiceId;
+    private $loaderTag;
+
+    public function __construct($resolverServiceId = 'routing.resolver', $loaderTag = 'routing.loader')
+    {
+        $this->resolverServiceId = $resolverServiceId;
+        $this->loaderTag = $loaderTag;
+    }
+
+    public function process(ContainerBuilder $container)
+    {
+        if (false === $container->hasDefinition($this->resolverServiceId)) {
+            return;
+        }
+
+        $definition = $container->getDefinition($this->resolverServiceId);
+
+        foreach ($this->findAndSortTaggedServices($this->loaderTag, $container) as $id) {
+            $definition->addMethodCall('addLoader', array(new Reference($id)));
+        }
+    }
+}