Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / web / core / lib / Drupal / Core / Controller / ArgumentResolver / RouteMatchValueResolver.php
diff --git a/web/core/lib/Drupal/Core/Controller/ArgumentResolver/RouteMatchValueResolver.php b/web/core/lib/Drupal/Core/Controller/ArgumentResolver/RouteMatchValueResolver.php
new file mode 100644 (file)
index 0000000..d5846fe
--- /dev/null
@@ -0,0 +1,30 @@
+<?php
+
+namespace Drupal\Core\Controller\ArgumentResolver;
+
+use Drupal\Core\Routing\RouteMatch;
+use Drupal\Core\Routing\RouteMatchInterface;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpKernel\Controller\ArgumentValueResolverInterface;
+use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
+
+/**
+ * Yields a RouteMatch object based on the request object passed along.
+ */
+final class RouteMatchValueResolver implements ArgumentValueResolverInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function supports(Request $request, ArgumentMetadata $argument) {
+    return $argument->getType() == RouteMatchInterface::class || is_subclass_of($argument->getType(), RouteMatchInterface::class);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function resolve(Request $request, ArgumentMetadata $argument) {
+    yield RouteMatch::createFromRequest($request);
+  }
+
+}