diff vendor/symfony/routing/Matcher/UrlMatcher.php @ 12:7a779792577d

Update Drupal core to v8.4.5 (via Composer)
author Chris Cannam
date Fri, 23 Feb 2018 15:52:07 +0000
parents 4c8ae668cc8c
children 1fec387a4317
line wrap: on
line diff
--- a/vendor/symfony/routing/Matcher/UrlMatcher.php	Fri Feb 23 15:51:18 2018 +0000
+++ b/vendor/symfony/routing/Matcher/UrlMatcher.php	Fri Feb 23 15:52:07 2018 +0000
@@ -207,7 +207,7 @@
     protected function handleRouteRequirements($pathinfo, $name, Route $route)
     {
         // expression condition
-        if ($route->getCondition() && !$this->getExpressionLanguage()->evaluate($route->getCondition(), array('context' => $this->context, 'request' => $this->request))) {
+        if ($route->getCondition() && !$this->getExpressionLanguage()->evaluate($route->getCondition(), array('context' => $this->context, 'request' => $this->request ?: $this->createRequest($pathinfo)))) {
             return array(self::REQUIREMENT_MISMATCH, null);
         }
 
@@ -248,4 +248,19 @@
 
         return $this->expressionLanguage;
     }
+
+    /**
+     * @internal
+     */
+    protected function createRequest($pathinfo)
+    {
+        if (!class_exists('Symfony\Component\HttpFoundation\Request')) {
+            return null;
+        }
+
+        return Request::create($this->context->getScheme().'://'.$this->context->getHost().$this->context->getBaseUrl().$pathinfo, $this->context->getMethod(), $this->context->getParameters(), array(), array(), array(
+            'SCRIPT_FILENAME' => $this->context->getBaseUrl(),
+            'SCRIPT_NAME' => $this->context->getBaseUrl(),
+        ));
+    }
 }