Skip to content
Snippets Groups Projects

Issue #3230487: Refactor to use dependency injection

3 files
+ 119
61
Compare changes
  • Side-by-side
  • Inline
Files
3
@@ -2,16 +2,58 @@
namespace Drupal\revision_graph\Controller;
use Drupal\Core\Database\Connection;
use Drupal\Core\Datetime\DateFormatterInterface;
use Drupal\Core\Entity\EntityRepositoryInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Render\RendererInterface;
use Drupal\Core\Url;
use Drupal\node\Controller\NodeController;
use Drupal\node\NodeInterface;
use Drupal\revision_graph\RevisionGraphStorage;
use Symfony\Component\DependencyInjection\ContainerInterface;
/**
* Returns responses for Node routes.
*/
class RevisionGraphNodeController extends NodeController {
/**
* The default database connection.
*
* @var \Drupal\Core\Database\Connection
*/
protected $connection;
/**
* The entity type manager.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* {@inheritdoc}
*/
public function __construct(DateFormatterInterface $date_formatter, RendererInterface $renderer, EntityRepositoryInterface $entity_repository = NULL, Connection $connection, EntityTypeManagerInterface $entity_type_manager) {
parent::__construct($date_formatter, $renderer, $entity_repository);
$this->connection = $connection;
$this->entityTypeManager = $entity_type_manager;
}
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
return new static(
$container->get('date.formatter'),
$container->get('renderer'),
$container->get('entity.repository'),
$container->get('database'),
$container->get('entity_type.manager')
);
}
/**
* {@inheritdoc}
*/
@@ -43,8 +85,7 @@ class RevisionGraphNodeController extends NodeController {
* List of revisions.
*/
private function loadGraphData(NodeInterface $node) {
$connection = \Drupal::service('database');
$result = $connection->query('SELECT * FROM {revision_graph} WHERE primary_id = :entity_id', [':entity_id' => $node->id()])->fetchAll();
$result = $this->connection->query('SELECT * FROM {revision_graph} WHERE primary_id = :entity_id', [':entity_id' => $node->id()])->fetchAll();
$graph = [
'map' => [],
'branches' => [],
@@ -81,7 +122,7 @@ class RevisionGraphNodeController extends NodeController {
$commits = [];
$langcode = $node->language()->getId();
$node_storage = \Drupal::EntityTypeManager()->getStorage('node');
$node_storage = $this->entityTypeManager->getStorage('node');
$default_revision = $node->getRevisionId();
foreach ($this->revisionIds($node) as $vid) {
@@ -149,7 +190,7 @@ class RevisionGraphNodeController extends NodeController {
*/
private function revisionIds(NodeInterface $node, $langcode = NULL) {
$vids = [];
$connection = \Drupal::service('database');
$connection = $this->connection;
if (isset($langcode)) {
$result = $connection->query(
'SELECT vid FROM {node_revision} WHERE nid=:nid AND langcode=:langcode ORDER BY vid DESC',
Loading