Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Routing/RequestContext.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Routing/RequestContext.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,67 @@ +<?php + +namespace Drupal\Core\Routing; + +use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\Component\Routing\RequestContext as SymfonyRequestContext; + +/** + * Holds information about the current request. + * + * @todo: Remove once the upstream RequestContext provides fromRequestStack(): + * https://github.com/symfony/symfony/issues/12057 + */ +class RequestContext extends SymfonyRequestContext { + + /** + * The scheme, host and base path, for example "http://example.com/d8". + * + * @var string + */ + protected $completeBaseUrl; + + /** + * Populates the context from the current request from the request stack. + * + * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack + * The current request stack. + */ + public function fromRequestStack(RequestStack $request_stack) { + $this->fromRequest($request_stack->getCurrentRequest()); + } + + /** + * {@inheritdoc} + */ + public function fromRequest(Request $request) { + parent::fromRequest($request); + + // @todo Extract the code in DrupalKernel::initializeRequestGlobals. + // See https://www.drupal.org/node/2404601 + if (isset($GLOBALS['base_url'])) { + $this->setCompleteBaseUrl($GLOBALS['base_url']); + } + } + + /** + * Gets the scheme, host and base path. + * + * For example, in an installation in a subdirectory "d8", it should be + * "https://example.com/d8". + */ + public function getCompleteBaseUrl() { + return $this->completeBaseUrl; + } + + /** + * Sets the complete base URL for the Request context. + * + * @param string $complete_base_url + * The complete base URL. + */ + public function setCompleteBaseUrl($complete_base_url) { + $this->completeBaseUrl = $complete_base_url; + } + +}