class DashboardController in Devel 8
Same name and namespace in other branches
- 8.3 webprofiler/src/Controller/DashboardController.php \Drupal\webprofiler\Controller\DashboardController
- 8.2 webprofiler/src/Controller/DashboardController.php \Drupal\webprofiler\Controller\DashboardController
- 4.x webprofiler/src/Controller/DashboardController.php \Drupal\webprofiler\Controller\DashboardController
Class DashboardController
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\webprofiler\Controller\DashboardController
Expanded class hierarchy of DashboardController
File
- webprofiler/
src/ Controller/ DashboardController.php, line 21
Namespace
Drupal\webprofiler\ControllerView source
class DashboardController extends ControllerBase {
/**
* @var \Drupal\webprofiler\Profiler\Profiler
*/
private $profiler;
/**
* @var \Symfony\Cmf\Component\Routing\ChainRouter
*/
private $router;
/**
* @var \Drupal\webprofiler\Profiler\TemplateManager
*/
private $templateManager;
/**
* @var \Drupal\Core\Datetime\DateFormatter
*/
private $date;
/**
* @var \Drupal\webprofiler\Profiler\ProfilerStorageManager
*/
private $storageManager;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static($container
->get('profiler'), $container
->get('router'), $container
->get('template_manager'), $container
->get('date.formatter'), $container
->get('profiler.storage_manager'));
}
/**
* Constructs a new WebprofilerController.
*
* @param \Drupal\webprofiler\Profiler\Profiler $profiler
* @param \Symfony\Component\Routing\RouterInterface $router
* @param \Drupal\webprofiler\Profiler\TemplateManager $templateManager
* @param \Drupal\Core\Datetime\DateFormatter $date
* @param \Drupal\webprofiler\Profiler\ProfilerStorageManager $storageManager
*/
public function __construct(Profiler $profiler, RouterInterface $router, TemplateManager $templateManager, DateFormatter $date, ProfilerStorageManager $storageManager) {
$this->profiler = $profiler;
$this->router = $router;
$this->templateManager = $templateManager;
$this->date = $date;
$this->storageManager = $storageManager;
}
/**
* Generates the dashboard page.
*
* @param Profile $profile
*
* @return array
*/
public function dashboardAction(Profile $profile) {
$this->profiler
->disable();
$templateManager = $this->templateManager;
$templates = $templateManager
->getTemplates($profile);
$panels = [];
$libraries = [
'webprofiler/dashboard',
];
$drupalSettings = [
'webprofiler' => [
'token' => $profile
->getToken(),
'ide_link' => $this
->config('webprofiler.config')
->get('ide_link'),
'ide_link_remote' => $this
->config('webprofiler.config')
->get('ide_link_remote'),
'ide_link_local' => $this
->config('webprofiler.config')
->get('ide_link_local'),
'collectors' => [],
],
];
foreach ($templates as $name => $template) {
/** @var DrupalDataCollectorInterface $collector */
$collector = $profile
->getCollector($name);
if ($collector
->hasPanel()) {
$rendered = $template
->renderBlock('panel', [
'token' => $profile
->getToken(),
'name' => $name,
]);
$panels[] = [
'#theme' => 'webprofiler_panel',
'#panel' => $rendered,
];
$drupalSettings['webprofiler']['collectors'][] = [
'id' => $name,
'name' => $name,
'label' => $collector
->getTitle(),
'summary' => $collector
->getPanelSummary(),
'icon' => $collector
->getIcon(),
];
$libraries = array_merge($libraries, $collector
->getLibraries());
$drupalSettings['webprofiler'] += $collector
->getDrupalSettings();
}
}
$build = [];
$build['panels'] = [
'#theme' => 'webprofiler_dashboard',
'#profile' => $profile,
'#panels' => $panels,
'#spinner_path' => '/' . $this
->moduleHandler()
->getModule('webprofiler')
->getPath() . '/images/searching.gif',
'#attached' => [
'drupalSettings' => $drupalSettings,
'library' => $libraries,
],
];
return $build;
}
/**
* Generates the list page.
*
* @param \Symfony\Component\HttpFoundation\Request $request
*
* @return array
*/
public function listAction(Request $request) {
$limit = $request
->get('limit', 10);
$this->profiler
->disable();
$ip = $request->query
->get('ip');
$method = $request->query
->get('method');
$url = $request->query
->get('url');
$profiles = $this->profiler
->find($ip, $url, $limit, $method, '', '');
$rows = [];
if (count($profiles)) {
foreach ($profiles as $profile) {
$row = [];
$row[] = $this
->l($profile['token'], new Url('webprofiler.dashboard', [
'profile' => $profile['token'],
]));
$row[] = $profile['ip'];
$row[] = $profile['method'];
$row[] = $profile['url'];
$row[] = $this->date
->format($profile['time']);
$rows[] = $row;
}
}
else {
$rows[] = [
[
'data' => $this
->t('No profiles found'),
'colspan' => 6,
],
];
}
$build = [];
$storage_id = $this
->config('webprofiler.config')
->get('storage');
$storage = $this->storageManager
->getStorage($storage_id);
$build['resume'] = [
'#type' => 'inline_template',
'#template' => '<p>{{ message }}</p>',
'#context' => [
'message' => $this
->t('Profiles stored with %storage service.', [
'%storage' => $storage['title'],
]),
],
];
$build['filters'] = $this
->formBuilder()
->getForm('Drupal\\webprofiler\\Form\\ProfilesFilterForm');
$build['table'] = [
'#type' => 'table',
'#rows' => $rows,
'#header' => [
$this
->t('Token'),
[
'data' => $this
->t('Ip'),
'class' => [
RESPONSIVE_PRIORITY_LOW,
],
],
[
'data' => $this
->t('Method'),
'class' => [
RESPONSIVE_PRIORITY_LOW,
],
],
$this
->t('Url'),
[
'data' => $this
->t('Time'),
'class' => [
RESPONSIVE_PRIORITY_MEDIUM,
],
],
],
'#sticky' => TRUE,
];
return $build;
}
/**
* Exposes collector's data as JSON.
*
* @param \Symfony\Component\HttpKernel\Profiler\Profile $profile
* @param $collector
*
* @return \Symfony\Component\HttpFoundation\JsonResponse
*/
public function restCollectorAction(Profile $profile, $collector) {
$this->profiler
->disable();
$data = $profile
->getCollector($collector)
->getData();
return new JsonResponse([
'data' => $data,
]);
}
}
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. | |
DashboardController:: |
private | property | ||
DashboardController:: |
private | property | ||
DashboardController:: |
private | property | ||
DashboardController:: |
private | property | ||
DashboardController:: |
private | property | ||
DashboardController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
DashboardController:: |
public | function | Generates the dashboard page. | |
DashboardController:: |
public | function | Generates the list page. | |
DashboardController:: |
public | function | Exposes collector's data as JSON. | |
DashboardController:: |
public | function | Constructs a new WebprofilerController. | |
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. |