class PagerTestController in Drupal 8
Same name and namespace in other branches
- 9 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
Controller routine for testing the pager.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\pager_test\Controller\PagerTestController implements 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
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ControllerBase:: |
protected | property | The configuration factory. | |
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PagerTestController:: |
protected | property | The pager request service. | |
PagerTestController:: |
protected | function | Builds a render array for a pageable test table. | |
PagerTestController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
PagerTestController:: |
public | function | Returns a page with multiple pagers. | |
PagerTestController:: |
public | function | Returns a pager with 'parameters' variable. | |
PagerTestController:: |
public static | function | #pre_render callback for #type => pager that shows the pager cache context. | |
PagerTestController:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |
|
PagerTestController:: |
public | function | Construct a new PagerTestController object. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. | ||
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |