annotate core/lib/Drupal/Core/Routing/RequestContext.php @ 19:fa3358dc1485 tip

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