--- /dev/null
+/**
+ * Implements hook_requirements().
+ */
+function {{ machine_name }}_requirements($phase) {
+ $requirements = [];
+
+ // Report Drupal version
+ if ($phase == 'runtime') {
+ $requirements['drupal'] = [
+ 'title' => t('Drupal'),
+ 'value' => \Drupal::VERSION,
+ 'severity' => REQUIREMENT_INFO
+ ];
+ }
+
+ // Test PHP version
+ $requirements['php'] = [
+ 'title' => t('PHP'),
+ 'value' => ($phase == 'runtime') ? \Drupal::l(phpversion(), new Url('system.php')) : phpversion(),
+ ];
+ if (version_compare(phpversion(), DRUPAL_MINIMUM_PHP) < 0) {
+ $requirements['php']['description'] = t('Your PHP installation is too old. Drupal requires at least PHP %version.', ['%version' => DRUPAL_MINIMUM_PHP]);
+ $requirements['php']['severity'] = REQUIREMENT_ERROR;
+ }
+
+ // Report cron status
+ if ($phase == 'runtime') {
+ $cron_last = \Drupal::state()->get('system.cron_last');
+
+ if (is_numeric($cron_last)) {
+ $requirements['cron']['value'] = t('Last run @time ago', ['@time' => \Drupal::service('date.formatter')->formatTimeDiffSince($cron_last)]);
+ }
+ else {
+ $requirements['cron'] = [
+ 'description' => t('Cron has not run. It appears cron jobs have not been setup on your system. Check the help pages for <a href=":url">configuring cron jobs</a>.', [':url' => 'https://www.drupal.org/cron']),
+ 'severity' => REQUIREMENT_ERROR,
+ 'value' => t('Never run'),
+ ];
+ }
+
+ $requirements['cron']['description'] .= ' ' . t('You can <a href=":cron">run cron manually</a>.', [':cron' => \Drupal::url('system.run_cron')]);
+
+ $requirements['cron']['title'] = t('Cron maintenance tasks');
+ }
+
+ return $requirements;
+}