Updated to Drupal 8.5. Core Media not yet in use.
[yaffs-website] / web / core / lib / Drupal / Core / Routing / Enhancer / EntityRevisionRouteEnhancer.php
index 9880edd5237e12ff28d5eb4d5af272d6c9afce16..d54338f449146678507e476d6269c4d326bd8ac4 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace Drupal\Core\Routing\Enhancer;
 
+use Drupal\Core\Routing\EnhancerInterface;
 use Symfony\Cmf\Component\Routing\RouteObjectInterface;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\Routing\Route;
@@ -9,12 +10,17 @@ use Symfony\Component\Routing\Route;
 /**
  * Adds _entity_revision to the request attributes, if possible.
  */
-class EntityRevisionRouteEnhancer implements RouteEnhancerInterface {
+class EntityRevisionRouteEnhancer implements EnhancerInterface {
 
   /**
-   * {@inheritdoc}
+   * Returns whether the enhancer runs on the current route.
+   *
+   * @param \Symfony\Component\Routing\Route $route
+   *   The current route.
+   *
+   * @return bool
    */
-  public function applies(Route $route) {
+  protected function applies(Route $route) {
     // Check whether there is any entity revision parameter.
     $parameters = $route->getOption('parameters') ?: [];
     foreach ($parameters as $info) {
@@ -31,6 +37,10 @@ class EntityRevisionRouteEnhancer implements RouteEnhancerInterface {
   public function enhance(array $defaults, Request $request) {
     /** @var \Symfony\Component\Routing\Route $route */
     $route = $defaults[RouteObjectInterface::ROUTE_OBJECT];
+    if (!$this->applies($route)) {
+      return $defaults;
+    }
+
     $options = $route->getOptions();
     if (isset($options['parameters'])) {
       foreach ($options['parameters'] as $name => $details) {