class PagerTestController
Same name in other branches
- 8.9.x core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php \Drupal\pager_test\Controller\PagerTestController
- 10 core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php \Drupal\pager_test\Controller\PagerTestController
- 11.x core/modules/system/tests/modules/pager_test/src/Controller/PagerTestController.php \Drupal\pager_test\Controller\PagerTestController
Controller routine for testing the pager.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements \Drupal\Core\DependencyInjection\ContainerInjectionInterface uses \Drupal\Core\Logger\LoggerChannelTrait, \Drupal\Core\Messenger\MessengerTrait, \Drupal\Core\Routing\RedirectDestinationTrait, \Drupal\Core\StringTranslation\StringTranslationTrait
- class \Drupal\pager_test\Controller\PagerTestController extends \Drupal\Core\Controller\ControllerBase implements \Drupal\Core\Security\TrustedCallbackInterface
Expanded class hierarchy of PagerTestController
File
-
core/
modules/ system/ tests/ modules/ pager_test/ src/ Controller/ PagerTestController.php, line 15
Namespace
Drupal\pager_test\ControllerView source
class PagerTestController extends ControllerBase implements TrustedCallbackInterface {
/**
* The pager request service.
*
* @var \Drupal\Core\Pager\PagerParametersInterface
*/
protected $pagerParams;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container->get('pager.parameters'));
}
/**
* Construct a new PagerTestController object.
*
* @param \Drupal\Core\Pager\PagerParametersInterface $pager_params
* The pager parameters.
*/
public function __construct(PagerParametersInterface $pager_params) {
$this->pagerParams = $pager_params;
}
/**
* Builds a render array for a pageable test table.
*
* @param int $element
* The pager element to be used for paging.
* @param int $limit
* The limit of rows per page for the specified element.
*
* @return array
* A render array.
*/
protected function buildTestTable($element, $limit) {
$header = [
[
'data' => 'wid',
],
[
'data' => 'type',
],
[
'data' => 'timestamp',
],
];
$query = Database::getConnection()->select('watchdog', 'd')
->extend(PagerSelectExtender::class)
->element($element);
$result = $query->fields('d', [
'wid',
'type',
'timestamp',
])
->limit($limit)
->orderBy('d.wid')
->execute();
$rows = [];
foreach ($result as $row) {
$rows[] = [
'data' => (array) $row,
];
}
return [
'#theme' => 'table',
'#header' => $header,
'#rows' => $rows,
'#empty' => $this->t("There are no watchdog records found in the db"),
];
}
/**
* Returns a pager with 'parameters' variable.
*
* The 'pager_calls' parameter counts the calls to the pager, subsequent
* to the initial call.
*/
public function queryParameters() {
// Example query.
$build['pager_table_0'] = $this->buildTestTable(0, 5);
// Counter of calls to the current pager.
$query_params = $this->pagerParams
->getQueryParameters();
$pager_calls = isset($query_params['pager_calls']) ? $query_params['pager_calls'] ? $query_params['pager_calls'] : 0 : 0;
$build['l_pager_pager_0'] = [
'#markup' => $this->t('Pager calls: @pager_calls', [
'@pager_calls' => $pager_calls,
]),
];
// Pager.
$build['pager_pager_0'] = [
'#type' => 'pager',
'#element' => 0,
'#parameters' => [
'pager_calls' => ++$pager_calls,
],
'#pre_render' => [
'Drupal\\pager_test\\Controller\\PagerTestController::showPagerCacheContext',
],
];
return $build;
}
/**
* Returns a page with multiple pagers.
*/
public function multiplePagers() {
// Build three tables with same query and different pagers.
$build['pager_table_0'] = $this->buildTestTable(0, 20);
$build['pager_pager_0'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'test-pager-0',
],
],
'pager' => [
'#type' => 'pager',
'#element' => 0,
],
];
$build['pager_table_1'] = $this->buildTestTable(1, 20);
$build['pager_pager_1'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'test-pager-1',
],
],
'pager' => [
'#type' => 'pager',
'#element' => 1,
],
];
$build['pager_table_4'] = $this->buildTestTable(4, 20);
$build['pager_pager_4'] = [
'#type' => 'container',
'#attributes' => [
'class' => [
'test-pager-4',
],
],
'pager' => [
'#type' => 'pager',
'#element' => 4,
],
];
return $build;
}
/**
* #pre_render callback for #type => pager that shows the pager cache context.
*/
public static function showPagerCacheContext(array $pager) {
\Drupal::messenger()->addStatus(\Drupal::service('cache_contexts_manager')->convertTokensToKeys([
'url.query_args.pagers:' . $pager['#element'],
])
->getKeys()[0]);
return $pager;
}
/**
* {@inheritdoc}
*/
public static function trustedCallbacks() {
return [
'showPagerCacheContext',
];
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
ControllerBase::$configFactory | protected | property | The configuration factory. | ||
ControllerBase::$currentUser | protected | property | The current user service. | 3 | |
ControllerBase::$entityFormBuilder | protected | property | The entity form builder. | ||
ControllerBase::$entityTypeManager | protected | property | The entity type manager. | ||
ControllerBase::$formBuilder | protected | property | The form builder. | 1 | |
ControllerBase::$keyValue | protected | property | The key-value storage. | 1 | |
ControllerBase::$languageManager | protected | property | The language manager. | 1 | |
ControllerBase::$moduleHandler | protected | property | The module handler. | 1 | |
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::currentUser | protected | function | Returns the current user. | 3 | |
ControllerBase::entityFormBuilder | protected | function | Retrieves the entity form builder. | ||
ControllerBase::entityTypeManager | protected | function | Retrieves the entity type manager. | ||
ControllerBase::formBuilder | protected | function | Returns the form builder service. | 1 | |
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. | 1 | |
ControllerBase::redirect | protected | function | Returns a redirect response object for the specified route. | ||
ControllerBase::state | protected | function | Returns the state storage 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. | ||
PagerTestController::$pagerParams | protected | property | The pager request service. | ||
PagerTestController::buildTestTable | protected | function | Builds a render array for a pageable test table. | ||
PagerTestController::create | public static | function | Instantiates a new instance of this class. | Overrides ControllerBase::create | |
PagerTestController::multiplePagers | public | function | Returns a page with multiple pagers. | ||
PagerTestController::queryParameters | public | function | Returns a pager with 'parameters' variable. | ||
PagerTestController::showPagerCacheContext | public static | function | #pre_render callback for #type => pager that shows the pager cache context. | ||
PagerTestController::trustedCallbacks | public static | function | Lists the trusted callbacks provided by the implementing class. | Overrides TrustedCallbackInterface::trustedCallbacks | |
PagerTestController::__construct | public | function | Construct a new PagerTestController object. | ||
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. | ||
StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | |
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. | ||
TrustedCallbackInterface::THROW_EXCEPTION | constant | Untrusted callbacks throw exceptions. | |||
TrustedCallbackInterface::TRIGGER_SILENCED_DEPRECATION | constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | |||
TrustedCallbackInterface::TRIGGER_WARNING | constant | Untrusted callbacks trigger E_USER_WARNING errors. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.