DevelDebugLogController.php in Devel Debug Log 8
File
src/Controller/DevelDebugLogController.php
View source
<?php
namespace Drupal\devel_debug_log\Controller;
use Drupal\Core\Controller\ControllerBase;
use Drupal\Core\Database\Connection;
use Drupal\Core\Datetime\DateFormatter;
use Drupal\Core\Form\FormBuilderInterface;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\DependencyInjection\ContainerInterface;
class DevelDebugLogController extends ControllerBase {
protected $database;
protected $serializer;
protected $dateFormatter;
protected $formBuilder;
public static function create(ContainerInterface $container) {
return new static($container
->get('database'), $container
->get('date.formatter'), $container
->get('serializer'), $container
->get('form_builder'));
}
public function __construct(Connection $database, DateFormatter $dateFormatter, Serializer $serializer, FormBuilderInterface $formBuilder) {
$this->database = $database;
$this->dateFormatter = $dateFormatter;
$this->serializer = $serializer;
$this->formBuilder = $formBuilder;
}
public function listLogs() {
$query = $this->database
->select('devel_debug_log', 'm')
->extend('Drupal\\Core\\Database\\Query\\PagerSelectExtender');
$results = $query
->fields('m', [
'timestamp',
'title',
'message',
])
->orderBy('id', 'desc')
->execute();
$rows = [];
foreach ($results as $result) {
$rows[] = array(
'title' => $result->title,
'time' => $this->dateFormatter
->format($result->timestamp, 'short'),
'message' => $result->message,
);
}
if (empty($rows)) {
return array(
'#markup' => $this
->t('No debug messages.'),
);
}
$build = array(
'messages' => array(
'#theme' => 'devel_debug_log_list',
'#content' => $rows,
'#delete_form' => $this->formBuilder
->getForm('Drupal\\devel_debug_log\\Form\\DevelDebugLogDeleteForm'),
),
'pager' => array(
'#type' => 'pager',
),
);
return $build;
}
}