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

Breadcrumb

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

class CurrentPathStack

Represents the current path for the current request.

Note: You should not rely on paths but rather on route names / parameters or other indicators like context. For some fundamental parts, like routing or path processing, there is unfortunately no way around dealing with paths.

Hierarchy

  • class \Drupal\Core\Path\CurrentPathStack

Expanded class hierarchy of CurrentPathStack

10 files declare their use of CurrentPathStack
ActiveLinkResponseFilter.php in core/lib/Drupal/Core/EventSubscriber/ActiveLinkResponseFilter.php
PathAliasSubscriber.php in core/modules/path_alias/src/EventSubscriber/PathAliasSubscriber.php
PathBasedBreadcrumbBuilder.php in core/modules/system/src/PathBasedBreadcrumbBuilder.php
Raw.php in core/modules/views/src/Plugin/views/argument_default/Raw.php
RequestPath.php in core/modules/system/src/Plugin/Condition/RequestPath.php

... See full list

File

core/lib/Drupal/Core/Path/CurrentPathStack.php, line 15

Namespace

Drupal\Core\Path
View source
class CurrentPathStack {
    
    /**
     * Static cache of paths.
     *
     * @var \SplObjectStorage
     */
    protected $paths;
    
    /**
     * The request stack.
     *
     * @var \Symfony\Component\HttpFoundation\RequestStack
     */
    protected $requestStack;
    
    /**
     * Constructs a new CurrentPathStack instance.
     *
     * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
     *   The request stack.
     */
    public function __construct(RequestStack $request_stack) {
        $this->requestStack = $request_stack;
        $this->paths = new \SplObjectStorage();
    }
    
    /**
     * Returns the path of the current request.
     *
     * @param \Symfony\Component\HttpFoundation\Request $request
     *   (optional) The request.
     *
     * @return string
     *   Returns the path, without leading slashes.
     */
    public function getPath(?Request $request = NULL) {
        if (!isset($request)) {
            $request = $this->requestStack
                ->getCurrentRequest();
        }
        if (!isset($this->paths[$request])) {
            $this->paths[$request] = $request->getPathInfo();
        }
        return $this->paths[$request];
    }
    
    /**
     * Sets the current path.
     *
     * @param string $path
     *   The path.
     * @param \Symfony\Component\HttpFoundation\Request $request
     *   (optional) The request.
     *
     * @return $this
     */
    public function setPath($path, ?Request $request = NULL) {
        if (!isset($request)) {
            $request = $this->requestStack
                ->getCurrentRequest();
        }
        $this->paths[$request] = $path;
        return $this;
    }

}

Members

Title Sort descending Modifiers Object type Summary
CurrentPathStack::$paths protected property Static cache of paths.
CurrentPathStack::$requestStack protected property The request stack.
CurrentPathStack::getPath public function Returns the path of the current request.
CurrentPathStack::setPath public function Sets the current path.
CurrentPathStack::__construct public function Constructs a new CurrentPathStack instance.

API Navigation

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