class CurrentPathStack
Same name in other branches
- 9 core/lib/Drupal/Core/Path/CurrentPathStack.php \Drupal\Core\Path\CurrentPathStack
- 8.9.x core/lib/Drupal/Core/Path/CurrentPathStack.php \Drupal\Core\Path\CurrentPathStack
- 10 core/lib/Drupal/Core/Path/CurrentPathStack.php \Drupal\Core\Path\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
18 files declare their use of CurrentPathStack
- ActiveLinkResponseFilter.php in core/
lib/ Drupal/ Core/ EventSubscriber/ ActiveLinkResponseFilter.php - ActiveLinkResponseFilterTest.php in core/
tests/ Drupal/ Tests/ Core/ EventSubscriber/ ActiveLinkResponseFilterTest.php - PathAliasSubscriber.php in core/
modules/ path_alias/ src/ EventSubscriber/ PathAliasSubscriber.php - PathBasedBreadcrumbBuilder.php in core/
modules/ system/ src/ PathBasedBreadcrumbBuilder.php - ProxyServicesPassTest.php in core/
tests/ Drupal/ Tests/ Core/ DependencyInjection/ Compiler/ ProxyServicesPassTest.php
File
-
core/
lib/ Drupal/ Core/ Path/ CurrentPathStack.php, line 15
Namespace
Drupal\Core\PathView 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. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.