Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
CRAP | |
0.00% |
0 / 44 |
CronForm | |
0.00% |
0 / 1 |
|
0.00% |
0 / 5 |
56 | |
0.00% |
0 / 44 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 5 |
|||
create | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 8 |
|||
getFormId | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
buildForm | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 22 |
|||
submitForm | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 7 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\system\Form\CronForm. | |
*/ | |
namespace Drupal\system\Form; | |
use Drupal\Core\Config\ConfigFactoryInterface; | |
use Drupal\Core\CronInterface; | |
use Drupal\Core\Datetime\DateFormatterInterface; | |
use Drupal\Core\Extension\ModuleHandlerInterface; | |
use Drupal\Core\Form\FormBase; | |
use Drupal\Core\Form\FormStateInterface; | |
use Drupal\Core\State\StateInterface; | |
use Symfony\Component\DependencyInjection\ContainerInterface; | |
use Symfony\Component\HttpFoundation\RedirectResponse; | |
/** | |
* Configure cron settings for this site. | |
*/ | |
class CronForm extends FormBase { | |
/** | |
* Stores the state storage service. | |
* | |
* @var \Drupal\Core\State\StateInterface | |
*/ | |
protected $state; | |
/** | |
* The cron service. | |
* | |
* @var \Drupal\Core\CronInterface | |
*/ | |
protected $cron; | |
/** | |
* The date formatter service. | |
* | |
* @var \Drupal\Core\Datetime\DateFormatterInterface | |
*/ | |
protected $dateFormatter; | |
/** | |
* The module handler service. | |
* | |
* @var \Drupal\Core\Extension\ModuleHandlerInterface $moduleHandler | |
*/ | |
protected $moduleHandler; | |
/** | |
* Constructs a CronForm object. | |
* | |
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory | |
* The factory for configuration objects. | |
* @param \Drupal\Core\State\StateInterface $state | |
* The state key value store. | |
* @param \Drupal\Core\CronInterface $cron | |
* The cron service. | |
* @param \Drupal\Core\Datetime\DateFormatterInterface $date_formatter | |
* The date formatter service. | |
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler | |
* The module handler service. | |
*/ | |
public function __construct(ConfigFactoryInterface $config_factory, StateInterface $state, CronInterface $cron, DateFormatterInterface $date_formatter, ModuleHandlerInterface $module_handler) { | |
$this->state = $state; | |
$this->cron = $cron; | |
$this->dateFormatter = $date_formatter; | |
$this->moduleHandler = $module_handler; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public static function create(ContainerInterface $container) { | |
return new static( | |
$container->get('config.factory'), | |
$container->get('state'), | |
$container->get('cron'), | |
$container->get('date.formatter'), | |
$container->get('module_handler') | |
); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function getFormId() { | |
return 'system_cron_settings'; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function buildForm(array $form, FormStateInterface $form_state) { | |
$form['description'] = array( | |
'#markup' => '<p>' . t('Cron takes care of running periodic tasks like checking for updates and indexing content for search.') . '</p>', | |
); | |
$form['run'] = array( | |
'#type' => 'submit', | |
'#value' => t('Run cron'), | |
); | |
$status = '<p>' . $this->t('Last run: %time ago.', array('%time' => $this->dateFormatter->formatTimeDiffSince($this->state->get('system.cron_last')))) . '</p>'; | |
$form['status'] = array( | |
'#markup' => $status, | |
); | |
$cron_url = $this->url('system.cron', array('key' => $this->state->get('system.cron_key')), array('absolute' => TRUE)); | |
$form['cron_url'] = array( | |
'#markup' => '<p>' . t('To run cron from outside the site, go to <a href=":cron">@cron</a>', array(':cron' => $cron_url, '@cron' => $cron_url)) . '</p>', | |
); | |
if (!$this->moduleHandler->moduleExists('automated_cron')) { | |
$form['cron'] = array( | |
'#markup' => $this->t('Enable the <em>Automated Cron</em> module to allow cron execution at the end of a server response.'), | |
); | |
} | |
return $form; | |
} | |
/** | |
* Runs cron and reloads the page. | |
*/ | |
public function submitForm(array &$form, FormStateInterface $form_state) { | |
// Run cron manually from Cron form. | |
if ($this->cron->run()) { | |
drupal_set_message(t('Cron run successfully.')); | |
} | |
else { | |
drupal_set_message(t('Cron run failed.'), 'error'); | |
} | |
} | |
} |