Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. RequestContext.php

class RequestContext

Same name in this branch
  1. 11.1.x core/lib/Drupal/Core/Routing/RequestContext.php \Drupal\Core\Routing\RequestContext

Holds information about the current request.

This class implements a fluent interface.

@author Fabien Potencier <fabien@symfony.com> @author Tobias Schultze <http://tobion.de&gt;

Hierarchy

  • class \Symfony\Component\Routing\RequestContext

Expanded class hierarchy of RequestContext

11 files declare their use of RequestContext
AccessAwareRouter.php in core/lib/Drupal/Core/Routing/AccessAwareRouter.php
CompiledUrlGenerator.php in vendor/symfony/routing/Generator/CompiledUrlGenerator.php
CompiledUrlMatcher.php in vendor/symfony/routing/Matcher/CompiledUrlMatcher.php
CompiledUrlMatcherTrait.php in vendor/symfony/routing/Matcher/Dumper/CompiledUrlMatcherTrait.php
MetadataBubblingUrlGenerator.php in core/lib/Drupal/Core/Render/MetadataBubblingUrlGenerator.php

... See full list

File

vendor/symfony/routing/RequestContext.php, line 24

Namespace

Symfony\Component\Routing
View source
class RequestContext {
    private string $baseUrl;
    private string $pathInfo;
    private string $method;
    private string $host;
    private string $scheme;
    private int $httpPort;
    private int $httpsPort;
    private string $queryString;
    private array $parameters = [];
    public function __construct(string $baseUrl = '', string $method = 'GET', string $host = 'localhost', string $scheme = 'http', int $httpPort = 80, int $httpsPort = 443, string $path = '/', string $queryString = '') {
        $this->setBaseUrl($baseUrl);
        $this->setMethod($method);
        $this->setHost($host);
        $this->setScheme($scheme);
        $this->setHttpPort($httpPort);
        $this->setHttpsPort($httpsPort);
        $this->setPathInfo($path);
        $this->setQueryString($queryString);
    }
    public static function fromUri(string $uri, string $host = 'localhost', string $scheme = 'http', int $httpPort = 80, int $httpsPort = 443) : self {
        if (false !== ($i = strpos($uri, '\\')) && $i < strcspn($uri, '?#')) {
            $uri = '';
        }
        if ('' !== $uri && (\ord($uri[0]) <= 32 || \ord($uri[-1]) <= 32 || \strlen($uri) !== strcspn($uri, "\r\n\t"))) {
            $uri = '';
        }
        $uri = parse_url($uri);
        $scheme = $uri['scheme'] ?? $scheme;
        $host = $uri['host'] ?? $host;
        if (isset($uri['port'])) {
            if ('http' === $scheme) {
                $httpPort = $uri['port'];
            }
            elseif ('https' === $scheme) {
                $httpsPort = $uri['port'];
            }
        }
        return new self($uri['path'] ?? '', 'GET', $host, $scheme, $httpPort, $httpsPort);
    }
    
    /**
     * Updates the RequestContext information based on a HttpFoundation Request.
     *
     * @return $this
     */
    public function fromRequest(Request $request) : static {
        $this->setBaseUrl($request->getBaseUrl());
        $this->setPathInfo($request->getPathInfo());
        $this->setMethod($request->getMethod());
        $this->setHost($request->getHost());
        $this->setScheme($request->getScheme());
        $this->setHttpPort($request->isSecure() || null === $request->getPort() ? $this->httpPort : $request->getPort());
        $this->setHttpsPort($request->isSecure() && null !== $request->getPort() ? $request->getPort() : $this->httpsPort);
        $this->setQueryString($request->server
            ->get('QUERY_STRING', ''));
        return $this;
    }
    
    /**
     * Gets the base URL.
     */
    public function getBaseUrl() : string {
        return $this->baseUrl;
    }
    
    /**
     * Sets the base URL.
     *
     * @return $this
     */
    public function setBaseUrl(string $baseUrl) : static {
        $this->baseUrl = rtrim($baseUrl, '/');
        return $this;
    }
    
    /**
     * Gets the path info.
     */
    public function getPathInfo() : string {
        return $this->pathInfo;
    }
    
    /**
     * Sets the path info.
     *
     * @return $this
     */
    public function setPathInfo(string $pathInfo) : static {
        $this->pathInfo = $pathInfo;
        return $this;
    }
    
    /**
     * Gets the HTTP method.
     *
     * The method is always an uppercased string.
     */
    public function getMethod() : string {
        return $this->method;
    }
    
    /**
     * Sets the HTTP method.
     *
     * @return $this
     */
    public function setMethod(string $method) : static {
        $this->method = strtoupper($method);
        return $this;
    }
    
    /**
     * Gets the HTTP host.
     *
     * The host is always lowercased because it must be treated case-insensitive.
     */
    public function getHost() : string {
        return $this->host;
    }
    
    /**
     * Sets the HTTP host.
     *
     * @return $this
     */
    public function setHost(string $host) : static {
        $this->host = strtolower($host);
        return $this;
    }
    
    /**
     * Gets the HTTP scheme.
     */
    public function getScheme() : string {
        return $this->scheme;
    }
    
    /**
     * Sets the HTTP scheme.
     *
     * @return $this
     */
    public function setScheme(string $scheme) : static {
        $this->scheme = strtolower($scheme);
        return $this;
    }
    
    /**
     * Gets the HTTP port.
     */
    public function getHttpPort() : int {
        return $this->httpPort;
    }
    
    /**
     * Sets the HTTP port.
     *
     * @return $this
     */
    public function setHttpPort(int $httpPort) : static {
        $this->httpPort = $httpPort;
        return $this;
    }
    
    /**
     * Gets the HTTPS port.
     */
    public function getHttpsPort() : int {
        return $this->httpsPort;
    }
    
    /**
     * Sets the HTTPS port.
     *
     * @return $this
     */
    public function setHttpsPort(int $httpsPort) : static {
        $this->httpsPort = $httpsPort;
        return $this;
    }
    
    /**
     * Gets the query string without the "?".
     */
    public function getQueryString() : string {
        return $this->queryString;
    }
    
    /**
     * Sets the query string.
     *
     * @return $this
     */
    public function setQueryString(?string $queryString) : static {
        // string cast to be fault-tolerant, accepting null
        $this->queryString = (string) $queryString;
        return $this;
    }
    
    /**
     * Returns the parameters.
     */
    public function getParameters() : array {
        return $this->parameters;
    }
    
    /**
     * Sets the parameters.
     *
     * @param array $parameters The parameters
     *
     * @return $this
     */
    public function setParameters(array $parameters) : static {
        $this->parameters = $parameters;
        return $this;
    }
    
    /**
     * Gets a parameter value.
     */
    public function getParameter(string $name) : mixed {
        return $this->parameters[$name] ?? null;
    }
    
    /**
     * Checks if a parameter value is set for the given parameter.
     */
    public function hasParameter(string $name) : bool {
        return \array_key_exists($name, $this->parameters);
    }
    
    /**
     * Sets a parameter value.
     *
     * @return $this
     */
    public function setParameter(string $name, mixed $parameter) : static {
        $this->parameters[$name] = $parameter;
        return $this;
    }
    public function isSecure() : bool {
        return 'https' === $this->scheme;
    }

}

Members

Title Sort descending Modifiers Object type Summary Overrides
RequestContext::$baseUrl private property
RequestContext::$host private property
RequestContext::$httpPort private property
RequestContext::$httpsPort private property
RequestContext::$method private property
RequestContext::$parameters private property
RequestContext::$pathInfo private property
RequestContext::$queryString private property
RequestContext::$scheme private property
RequestContext::fromRequest public function Updates the RequestContext information based on a HttpFoundation Request. 1
RequestContext::fromUri public static function
RequestContext::getBaseUrl public function Gets the base URL.
RequestContext::getHost public function Gets the HTTP host.
RequestContext::getHttpPort public function Gets the HTTP port.
RequestContext::getHttpsPort public function Gets the HTTPS port.
RequestContext::getMethod public function Gets the HTTP method.
RequestContext::getParameter public function Gets a parameter value.
RequestContext::getParameters public function Returns the parameters.
RequestContext::getPathInfo public function Gets the path info.
RequestContext::getQueryString public function Gets the query string without the &quot;?&quot;.
RequestContext::getScheme public function Gets the HTTP scheme.
RequestContext::hasParameter public function Checks if a parameter value is set for the given parameter.
RequestContext::isSecure public function
RequestContext::setBaseUrl public function Sets the base URL.
RequestContext::setHost public function Sets the HTTP host.
RequestContext::setHttpPort public function Sets the HTTP port.
RequestContext::setHttpsPort public function Sets the HTTPS port.
RequestContext::setMethod public function Sets the HTTP method.
RequestContext::setParameter public function Sets a parameter value.
RequestContext::setParameters public function Sets the parameters.
RequestContext::setPathInfo public function Sets the path info.
RequestContext::setQueryString public function Sets the query string.
RequestContext::setScheme public function Sets the HTTP scheme.
RequestContext::__construct public function

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal