Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
3 / 3
CRAP
100.00% covered (success)
100.00%
1 / 1
PerformanceController
100.00% covered (success)
100.00%
17 / 17
100.00% covered (success)
100.00%
3 / 3
4
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 create
100.00% covered (success)
100.00%
5 / 5
100.00% covered (success)
100.00%
1 / 1
1
 migrate
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace Drupal\visitors\Controller;
4
5use Drupal\Core\Controller\ControllerBase;
6use Drupal\Core\Form\FormBuilderInterface;
7use Drupal\Core\Messenger\MessengerInterface;
8use Symfony\Component\DependencyInjection\ContainerInterface;
9use Symfony\Component\HttpFoundation\RedirectResponse;
10use Drupal\Core\Url;
11use Drupal\Core\Database\Connection;
12
13/**
14 * Controller for the statistics migration form.
15 */
16class PerformanceController extends ControllerBase {
17
18  /**
19   * The database.
20   *
21   * @var \Drupal\Core\Database\Connection
22   */
23  protected $database;
24
25  /**
26   * The form builder.
27   *
28   * @var \Drupal\Core\Form\FormBuilderInterface
29   */
30  protected $formBuilder;
31
32  /**
33   * Constructs the counter service.
34   *
35   * @param \Drupal\Core\Database\Connection $database
36   *   The database.
37   * @param \Drupal\Core\Form\FormBuilderInterface $form_builder
38   *   The form builder.
39   * @param \Drupal\Core\Messenger\MessengerInterface $messenger
40   *   The messenger.
41   */
42  public function __construct(Connection $database, FormBuilderInterface $form_builder, MessengerInterface $messenger) {
43    $this->database = $database;
44    $this->formBuilder = $form_builder;
45    $this->setMessenger($messenger);
46  }
47
48  /**
49   * {@inheritdoc}
50   */
51  public static function create(ContainerInterface $container) {
52    return new static(
53      $container->get('database'),
54      $container->get('form_builder'),
55      $container->get('messenger'),
56    );
57  }
58
59  /**
60   * Migrate statistics.
61   */
62  public function migrate() {
63    $schema = $this->database->schema();
64    $visitors_performance_exists = $schema->tableExists('visitors_performance');
65    if (!$visitors_performance_exists) {
66      $this->messenger()->addWarning('Performance table does not exist. No data to migrate.');
67      $url = Url::fromRoute('visitors.settings');
68      $response = new RedirectResponse($url->toString());
69      return $response->send();
70    }
71
72    $form = $this->formBuilder->getForm('Drupal\visitors\Form\PerformanceForm');
73    return $form;
74  }
75
76}