class RequestStack
Request stack that controls the lifecycle of requests.
@author Benjamin Eberlei <kontakt@beberlei.de>
Hierarchy
- class \Symfony\Component\HttpFoundation\RequestStack
Expanded class hierarchy of RequestStack
92 files declare their use of RequestStack
- AjaxBasePageNegotiator.php in core/
lib/ Drupal/ Core/ Theme/ AjaxBasePageNegotiator.php - AjaxResponseAttachmentsProcessor.php in core/
lib/ Drupal/ Core/ Ajax/ AjaxResponseAttachmentsProcessor.php - BatchNegotiator.php in core/
modules/ system/ src/ Theme/ BatchNegotiator.php - BigPipe.php in core/
modules/ big_pipe/ src/ Render/ BigPipe.php - BigPipeResponseAttachmentsProcessor.php in core/
modules/ big_pipe/ src/ Render/ BigPipeResponseAttachmentsProcessor.php
File
-
vendor/
symfony/ http-foundation/ RequestStack.php, line 22
Namespace
Symfony\Component\HttpFoundationView source
class RequestStack {
/**
* @var Request[]
*/
private array $requests = [];
/**
* @param Request[] $requests
*/
public function __construct(array $requests = []) {
foreach ($requests as $request) {
$this->push($request);
}
}
/**
* Pushes a Request on the stack.
*
* This method should generally not be called directly as the stack
* management should be taken care of by the application itself.
*/
public function push(Request $request) : void {
$this->requests[] = $request;
}
/**
* Pops the current request from the stack.
*
* This operation lets the current request go out of scope.
*
* This method should generally not be called directly as the stack
* management should be taken care of by the application itself.
*/
public function pop() : ?Request {
if (!$this->requests) {
return null;
}
return array_pop($this->requests);
}
public function getCurrentRequest() : ?Request {
return end($this->requests) ?: null;
}
/**
* Gets the main request.
*
* Be warned that making your code aware of the main request
* might make it un-compatible with other features of your framework
* like ESI support.
*/
public function getMainRequest() : ?Request {
if (!$this->requests) {
return null;
}
return $this->requests[0];
}
/**
* Returns the parent request of the current.
*
* Be warned that making your code aware of the parent request
* might make it un-compatible with other features of your framework
* like ESI support.
*
* If current Request is the main request, it returns null.
*/
public function getParentRequest() : ?Request {
$pos = \count($this->requests) - 2;
return $this->requests[$pos] ?? null;
}
/**
* Gets the current session.
*
* @throws SessionNotFoundException
*/
public function getSession() : SessionInterface {
if (null !== ($request = end($this->requests) ?: null) && $request->hasSession()) {
return $request->getSession();
}
throw new SessionNotFoundException();
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overrides |
---|---|---|---|---|
RequestStack::$requests | private | property | ||
RequestStack::getCurrentRequest | public | function | 1 | |
RequestStack::getMainRequest | public | function | Gets the main request. | 1 |
RequestStack::getParentRequest | public | function | Returns the parent request of the current. | 1 |
RequestStack::getSession | public | function | Gets the current session. | |
RequestStack::pop | public | function | Pops the current request from the stack. | 1 |
RequestStack::push | public | function | Pushes a Request on the stack. | 1 |
RequestStack::__construct | public | function | 1 |