Upgraded drupal core with security updates
[yaffs-website] / web / core / lib / Drupal / Core / Routing / RequestContext.php
1 <?php
2
3 namespace Drupal\Core\Routing;
4
5 use Symfony\Component\HttpFoundation\Request;
6 use Symfony\Component\HttpFoundation\RequestStack;
7 use Symfony\Component\Routing\RequestContext as SymfonyRequestContext;
8
9 /**
10  * Holds information about the current request.
11  *
12  * @todo: Remove once the upstream RequestContext provides fromRequestStack():
13  * https://github.com/symfony/symfony/issues/12057
14  */
15 class RequestContext extends SymfonyRequestContext {
16
17   /**
18    * The scheme, host and base path, for example "http://example.com/d8".
19    *
20    * @var string
21    */
22   protected $completeBaseUrl;
23
24   /**
25    * Populates the context from the current request from the request stack.
26    *
27    * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
28    *   The current request stack.
29    */
30   public function fromRequestStack(RequestStack $request_stack) {
31     $this->fromRequest($request_stack->getCurrentRequest());
32   }
33
34   /**
35    * {@inheritdoc}
36    */
37   public function fromRequest(Request $request) {
38     parent::fromRequest($request);
39
40     // @todo Extract the code in DrupalKernel::initializeRequestGlobals.
41     //   See https://www.drupal.org/node/2404601
42     if (isset($GLOBALS['base_url'])) {
43       $this->setCompleteBaseUrl($GLOBALS['base_url']);
44     }
45   }
46
47   /**
48    * Gets the scheme, host and base path.
49    *
50    * For example, in an installation in a subdirectory "d8", it should be
51    * "https://example.com/d8".
52    */
53   public function getCompleteBaseUrl() {
54     return $this->completeBaseUrl;
55   }
56
57   /**
58    * Sets the complete base URL for the Request context.
59    *
60    * @param string $complete_base_url
61    *   The complete base URL.
62    */
63   public function setCompleteBaseUrl($complete_base_url) {
64     $this->completeBaseUrl = $complete_base_url;
65   }
66
67 }