class SessionTestController
Same name in other branches
- 9 core/modules/system/tests/modules/session_test/src/Controller/SessionTestController.php \Drupal\session_test\Controller\SessionTestController
- 10 core/modules/system/tests/modules/session_test/src/Controller/SessionTestController.php \Drupal\session_test\Controller\SessionTestController
- 11.x core/modules/system/tests/modules/session_test/src/Controller/SessionTestController.php \Drupal\session_test\Controller\SessionTestController
Controller providing page callbacks for the action admin interface.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements \Drupal\Core\DependencyInjection\ContainerInjectionInterface uses \Drupal\Core\Routing\LinkGeneratorTrait, \Drupal\Core\Logger\LoggerChannelTrait, \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\Routing\UrlGeneratorTrait
- class \Drupal\session_test\Controller\SessionTestController extends \Drupal\Core\Controller\ControllerBase
Expanded class hierarchy of SessionTestController
File
-
core/
modules/ system/ tests/ modules/ session_test/ src/ Controller/ SessionTestController.php, line 14
Namespace
Drupal\session_test\ControllerView source
class SessionTestController extends ControllerBase {
/**
* Prints the stored session value to the screen.
*
* @return string
* A notification message.
*/
public function get() {
return empty($_SESSION['session_test_value']) ? [] : [
'#markup' => $this->t('The current value of the stored session variable is: %val', [
'%val' => $_SESSION['session_test_value'],
]),
];
}
/**
* Prints the stored session value to the screen.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The incoming request.
*
* @return string
* A notification message.
*/
public function getFromSessionObject(Request $request) {
$value = $request->getSession()
->get("session_test_key");
return empty($value) ? [] : [
'#markup' => $this->t('The current value of the stored session variable is: %val', [
'%val' => $value,
]),
];
}
/**
* Print the current session ID.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The incoming request.
*
* @return string
* A notification message with session ID.
*/
public function getId(Request $request) {
// Set a value in $_SESSION, so that SessionManager::save() will start
// a session.
$_SESSION['test'] = 'test';
$request->getSession()
->save();
return [
'#markup' => 'session_id:' . session_id() . "\n",
];
}
/**
* Print the current session ID as read from the cookie.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*
* @return string
* A notification message with session ID.
*/
public function getIdFromCookie(Request $request) {
return [
'#markup' => 'session_id:' . $request->cookies
->get(session_name()) . "\n",
'#cache' => [
'contexts' => [
'cookies:' . session_name(),
],
],
];
}
/**
* Stores a value in $_SESSION['session_test_value'].
*
* @param string $test_value
* A session value.
*
* @return string
* A notification message.
*/
public function set($test_value) {
$_SESSION['session_test_value'] = $test_value;
return [
'#markup' => $this->t('The current value of the stored session variable has been set to %val', [
'%val' => $test_value,
]),
];
}
/**
* Turns off session saving and then tries to save a value
* anyway.
*
* @param string $test_value
* A session value.
*
* @return string
* A notification message.
*/
public function noSet($test_value) {
\Drupal::service('session_handler.write_safe')->setSessionWritable(FALSE);
$this->set($test_value);
return [
'#markup' => $this->t('session saving was disabled, and then %val was set', [
'%val' => $test_value,
]),
];
}
/**
* Sets a message to me displayed on the following page.
*
* @return string
* A notification message.
*/
public function setMessage() {
$this->messenger()
->addStatus($this->t('This is a dummy message.'));
return new Response($this->t('A message was set.'));
// Do not return anything, so the current request does not result in a themed
// page with messages. The message will be displayed in the following request
// instead.
}
/**
* Sets a message but call drupal_save_session(FALSE).
*
* @return string
* A notification message.
*/
public function setMessageButDoNotSave() {
\Drupal::service('session_handler.write_safe')->setSessionWritable(FALSE);
$this->setMessage();
return [
'#markup' => '',
];
}
/**
* Only available if current user is logged in.
*
* @return string
* A notification message.
*/
public function isLoggedIn() {
return [
'#markup' => $this->t('User is logged in.'),
];
}
/**
* Returns the trace recorded by test proxy session handlers as JSON.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The incoming request.
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
* The response.
*/
public function traceHandler(Request $request) {
// Start a session if necessary, set a value and then save and close it.
$request->getSession()
->start();
if (empty($_SESSION['trace-handler'])) {
$_SESSION['trace-handler'] = 1;
}
else {
$_SESSION['trace-handler']++;
}
$request->getSession()
->save();
// Collect traces and return them in JSON format.
$trace = \Drupal::service('session_test.session_handler_proxy_trace')->getArrayCopy();
return new JsonResponse($trace);
}
/**
* Returns the values stored in the active session and the user ID.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
* A response object containing the session values and the user ID.
*/
public function getSession(Request $request) {
return new JsonResponse([
'session' => $request->getSession()
->all(),
'user' => $this->currentUser()
->id(),
]);
}
/**
* Sets a test value on the session.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
* @param string $test_value
* A value to set on the session.
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
* A response object containing the session values and the user ID.
*/
public function setSession(Request $request, $test_value) {
$session = $request->getSession();
$session->set('test_value', $test_value);
return new JsonResponse([
'session' => $session->all(),
'user' => $this->currentUser()
->id(),
]);
}
/**
* Sets the test flag in the session test bag.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*
* @return \Symfony\Component\HttpFoundation\Response
* The response object.
*/
public function setSessionBagFlag(Request $request) {
/** @var \Drupal\session_test\Session\TestSessionBag */
$bag = $request->getSession()
->getBag(TestSessionBag::BAG_NAME);
$bag->setFlag();
return new Response();
}
/**
* Clears the test flag from the session test bag.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*
* @return \Symfony\Component\HttpFoundation\Response
* The response object.
*/
public function clearSessionBagFlag(Request $request) {
/** @var \Drupal\session_test\Session\TestSessionBag */
$bag = $request->getSession()
->getBag(TestSessionBag::BAG_NAME);
$bag->clearFlag();
return new Response();
}
/**
* Prints a message if the flag in the session bag is set.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The request object.
*
* @return \Symfony\Component\HttpFoundation\Response
* The response object.
*/
public function hasSessionBagFlag(Request $request) {
/** @var \Drupal\session_test\Session\TestSessionBag */
$bag = $request->getSession()
->getBag(TestSessionBag::BAG_NAME);
return new Response(empty($bag->hasFlag()) ? $this->t('Flag is absent from session bag') : $this->t('Flag is present in session bag'));
}
}
Members
Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|---|
ControllerBase::$configFactory | protected | property | The configuration factory. | |||
ControllerBase::$currentUser | protected | property | The current user service. | 1 | ||
ControllerBase::$entityFormBuilder | protected | property | The entity form builder. | |||
ControllerBase::$entityManager | protected | property | The entity manager. | |||
ControllerBase::$entityTypeManager | protected | property | The entity type manager. | |||
ControllerBase::$formBuilder | protected | property | The form builder. | 2 | ||
ControllerBase::$keyValue | protected | property | The key-value storage. | 1 | ||
ControllerBase::$languageManager | protected | property | The language manager. | 1 | ||
ControllerBase::$moduleHandler | protected | property | The module handler. | 2 | ||
ControllerBase::$stateService | protected | property | The state service. | |||
ControllerBase::cache | protected | function | Returns the requested cache bin. | |||
ControllerBase::config | protected | function | Retrieves a configuration object. | |||
ControllerBase::container | private | function | Returns the service container. | |||
ControllerBase::create | public static | function | Instantiates a new instance of this class. | Overrides ContainerInjectionInterface::create | 46 | |
ControllerBase::currentUser | protected | function | Returns the current user. | 1 | ||
ControllerBase::entityFormBuilder | protected | function | Retrieves the entity form builder. | |||
ControllerBase::entityManager | Deprecated | protected | function | Retrieves the entity manager service. | ||
ControllerBase::entityTypeManager | protected | function | Retrieves the entity type manager. | |||
ControllerBase::formBuilder | protected | function | Returns the form builder service. | 2 | ||
ControllerBase::keyValue | protected | function | Returns a key/value storage collection. | 1 | ||
ControllerBase::languageManager | protected | function | Returns the language manager service. | 1 | ||
ControllerBase::moduleHandler | protected | function | Returns the module handler. | 2 | ||
ControllerBase::redirect | protected | function | Returns a redirect response object for the specified route. | Overrides UrlGeneratorTrait::redirect | ||
ControllerBase::state | protected | function | Returns the state storage service. | |||
LinkGeneratorTrait::$linkGenerator | protected | property | The link generator. | 1 | ||
LinkGeneratorTrait::getLinkGenerator | Deprecated | protected | function | Returns the link generator. | ||
LinkGeneratorTrait::l | Deprecated | protected | function | Renders a link to a route given a route name and its parameters. | ||
LinkGeneratorTrait::setLinkGenerator | Deprecated | public | function | Sets the link generator service. | ||
LoggerChannelTrait::$loggerFactory | protected | property | The logger channel factory service. | |||
LoggerChannelTrait::getLogger | protected | function | Gets the logger for a specific channel. | |||
LoggerChannelTrait::setLoggerFactory | public | function | Injects the logger channel factory. | |||
MessengerTrait::$messenger | protected | property | The messenger. | 17 | ||
MessengerTrait::messenger | public | function | Gets the messenger. | 17 | ||
MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
RedirectDestinationTrait::$redirectDestination | protected | property | The redirect destination service. | 1 | ||
RedirectDestinationTrait::getDestinationArray | protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |||
RedirectDestinationTrait::getRedirectDestination | protected | function | Returns the redirect destination service. | |||
RedirectDestinationTrait::setRedirectDestination | public | function | Sets the redirect destination service. | |||
SessionTestController::clearSessionBagFlag | public | function | Clears the test flag from the session test bag. | |||
SessionTestController::get | public | function | Prints the stored session value to the screen. | |||
SessionTestController::getFromSessionObject | public | function | Prints the stored session value to the screen. | |||
SessionTestController::getId | public | function | Print the current session ID. | |||
SessionTestController::getIdFromCookie | public | function | Print the current session ID as read from the cookie. | |||
SessionTestController::getSession | public | function | Returns the values stored in the active session and the user ID. | |||
SessionTestController::hasSessionBagFlag | public | function | Prints a message if the flag in the session bag is set. | |||
SessionTestController::isLoggedIn | public | function | Only available if current user is logged in. | |||
SessionTestController::noSet | public | function | Turns off session saving and then tries to save a value anyway. |
|||
SessionTestController::set | public | function | Stores a value in $_SESSION['session_test_value']. | |||
SessionTestController::setMessage | public | function | Sets a message to me displayed on the following page. | |||
SessionTestController::setMessageButDoNotSave | public | function | Sets a message but call drupal_save_session(FALSE). | |||
SessionTestController::setSession | public | function | Sets a test value on the session. | |||
SessionTestController::setSessionBagFlag | public | function | Sets the test flag in the session test bag. | |||
SessionTestController::traceHandler | public | function | Returns the trace recorded by test proxy session handlers as JSON. | |||
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | |||
StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | |||
UrlGeneratorTrait::$urlGenerator | protected | property | The url generator. | |||
UrlGeneratorTrait::getUrlGenerator | Deprecated | protected | function | Returns the URL generator service. | ||
UrlGeneratorTrait::setUrlGenerator | Deprecated | public | function | Sets the URL generator service. | ||
UrlGeneratorTrait::url | Deprecated | protected | function | Generates a URL or path for a specific route based on the given parameters. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.