abstract class ControllerBase in MongoDB 8.2
Base controller class for paged reports.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\mongodb_watchdog\Controller\ControllerBase uses \Psr\Log\LoggerAwareTrait
Expanded class hierarchy of ControllerBase
1 file declares its use of ControllerBase
- ControllerBaseTest.php in modules/
mongodb_watchdog/ tests/ src/ Unit/ ControllerBaseTest.php
File
- modules/
mongodb_watchdog/ src/ Controller/ ControllerBase.php, line 19
Namespace
Drupal\mongodb_watchdog\ControllerView source
abstract class ControllerBase extends CoreControllerBase {
use LoggerAwareTrait;
/**
* The items_per_page configuration value.
*
* @var int
*/
protected $itemsPerPage;
/**
* The pager.manager service.
*
* @var \Drupal\Core\Pager\PagerManagerInterface
*/
protected $pagerManager;
/**
* The MongoDB logger, to load events.
*
* @var \Drupal\mongodb_watchdog\Logger
*/
protected $watchdog;
/**
* ControllerBase constructor.
*
* @param \Psr\Log\LoggerInterface $logger
* The logger.channel.mongodb_watchdog service.
* @param \Drupal\mongodb_watchdog\Logger $watchdog
* The mongodb.logger service, to load stored events.
* @param \Drupal\Core\Pager\PagerManagerInterface $pagerManager
* The core pager.manager service.
* @param \Drupal\Core\Config\ImmutableConfig $config
* The mongodb_watchdog configuration.
*/
public function __construct(LoggerInterface $logger, Logger $watchdog, PagerManagerInterface $pagerManager, ImmutableConfig $config) {
$this
->setLogger($logger);
$this->itemsPerPage = $config
->get('items_per_page');
$this->pagerManager = $pagerManager;
$this->watchdog = $watchdog;
}
/**
* The default build() implementation.
*
* Cannot be a build() method because each controller build() has a
* different signature.
*
* @param array $main
* A render array for the main table.
* @param array $top
* A render array for the top element present on some controllers results.
*
* @return array
* A render array for the whole controller.
*/
protected function buildDefaults(array $main, array $top) : array {
$ret = [
'top' => $top,
];
$ret += [
'main' => $main,
'pager' => [
'#type' => 'pager',
],
'#attached' => [
'library' => [
'mongodb_watchdog/styling',
],
],
];
return $ret;
}
/**
* Build markup for a message about the lack of results.
*
* @param \Drupal\Core\StringTranslation\TranslatableMarkup $markup
* The message proper.
*
* @return array
* A render array for a message.
*/
protected function buildEmpty(TranslatableMarkup $markup) : array {
$ret = [
'#markup' => $markup,
'#prefix' => '<div class="mongodb-watchdog__message">',
'#suffix' => '</div>',
];
return $ret;
}
/**
* Return the top element: empty by default.
*
* @return array
* A render array for the top filter form.
*/
protected function getTop() : array {
$top = [];
return $top;
}
/**
* Set up the pager.
*
* @param \Symfony\Component\HttpFoundation\Request $request
* The current request.
* @param int $count
* The total number of possible rows.
*
* @return int
* The number of the page to display, starting at 0.
*/
public function setupPager(Request $request, int $count) : int {
$height = $this->itemsPerPage;
$this->pagerManager
->createPager($count, $height);
$requestedPage = intval($request->query
->get('page', 0));
$page = $this
->getPage($count, $requestedPage, $height);
return $page;
}
/**
* Return a reliable page number based on available data.
*
* @param int $count
* The number of events templates in the collection.
* @param int $requestedPage
* The page number requested by the user, starting at 0.
* @param int $height
* The pager height.
*
* @return int
* The actual index of the page to display.
*/
public static function getPage(int $count, int $requestedPage, int $height) : int {
if ($requestedPage <= 0) {
return 0;
}
// There is always at least one page, even with $count === 0.
$pageCount = max(1, intval(ceil($count / $height)));
if ($requestedPage < $pageCount) {
return $requestedPage;
}
$page = $pageCount - 1;
return $page;
}
}
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 items_per_page configuration value. | |
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 pager.manager service. | |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | property | The MongoDB logger, to load events. | |
ControllerBase:: |
protected | function | The default build() implementation. | |
ControllerBase:: |
protected | function | Build markup for a message about the lack of results. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
public static | function |
Instantiates a new instance of this class. Overrides ContainerInjectionInterface:: |
40 |
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:: |
public static | function | Return a reliable page number based on available data. | |
ControllerBase:: |
protected | function | Return the top element: empty by default. | 3 |
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:: |
public | function | Set up the pager. | |
ControllerBase:: |
protected | function | Returns the state storage service. | |
ControllerBase:: |
public | function | ControllerBase constructor. | 4 |
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. | |
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. | |
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. |