abstract class SiteAuditReportBase in Site Audit 8.3
Base class for Site Audit Report plugins.
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\site_audit\Plugin\SiteAuditReportBase implements SiteAuditReportInterface uses StringTranslationTrait
Expanded class hierarchy of SiteAuditReportBase
13 files declare their use of SiteAuditReportBase
- BestPractices.php in src/
Plugin/ SiteAuditReport/ BestPractices.php - Block.php in src/
Plugin/ SiteAuditReport/ Block.php - Cache.php in src/
Plugin/ SiteAuditReport/ Cache.php - Codebase.php in src/
Plugin/ SiteAuditReport/ Codebase.php - Content.php in src/
Plugin/ SiteAuditReport/ Content.php
File
- src/
Plugin/ SiteAuditReportBase.php, line 11
Namespace
Drupal\site_audit\PluginView source
abstract class SiteAuditReportBase extends PluginBase implements SiteAuditReportInterface {
use StringTranslationTrait;
/**
* Individual check objects.
*
* @var array
*/
protected $checks;
/**
* Percentage pass.
*
* @var int
*/
protected $percent;
/**
* Maximum score.
*
* @var int
*/
protected $scoreMax = 0;
/**
* Total score.
*
* @var int
*/
protected $scoreTotal = 0;
/**
* Flag to indicate whether any of the checks are a complete FAIL.
*
* @var bool
*/
protected $hasFail = FALSE;
/**
* Container that's passed between each Check.
*
* @var array
*/
protected $registry;
/**
* Get the complete name of the report.
*
* @return string
* The report name.
*/
protected function getReportName() {
return $this
->getPluginDefinition()['name'];
}
/**
* Get the label(name) for the report.
*/
public function getLabel() {
return $this
->getPluginDefinition()['name'];
}
/**
* Get the description for the report.
*/
public function getDescription() {
return $this
->getPluginDefinition()['description'];
}
/**
* Get the percentage score for the report.
*/
public function getPercent() {
return $this->percent ?: SiteAuditCheckBase::AUDIT_CHECK_SCORE_INFO;
}
/**
* Constructor.
*
* @param array $registry
* Aggregates data from each individual check.
* @param bool $opt_out
* If set, will not perform checks.
*/
public function __construct($configuration, $plugin_id, $plugin_definition) {
$checkManager = \Drupal::service('plugin.manager.site_audit_check');
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->registry = new \stdClass();
$percent_override = NULL;
$checks_to_skip = [];
$checks_to_perform = $this
->getChecksList();
foreach ($checks_to_perform as $key => $check_name) {
if (in_array($key, $checks_to_skip)) {
unset($checks_to_perform[$key]);
}
}
if (empty($checks_to_perform)) {
$this_def = $this
->getPluginDefinition();
// Throw new \RuntimeException(t('No checks are available for report \'@id\'!', ['@id' => $this_def['id']]));.
}
$config = \Drupal::config('site_audit');
foreach ($checks_to_perform as $check_id) {
$opt_out = $config
->get('opt_out.' . $this
->getPluginId() . $check_id) != NULL;
$check = $checkManager
->createInstance($check_id, [
'registry' => $this->registry,
'opt_out' => $opt_out,
'options' => $this->configuration,
]);
// Calculate score.
if ($check
->getScore() != SiteAuditCheckBase::AUDIT_CHECK_SCORE_INFO) {
// Mark if there's a major failure.
if ($check
->getScore() == SiteAuditCheckBase::AUDIT_CHECK_SCORE_FAIL) {
$this->hasFail = TRUE;
}
// Total.
$this->scoreTotal += $check
->getScore();
// Maximum.
$this->scoreMax += SiteAuditCheckBase::AUDIT_CHECK_SCORE_PASS;
}
// Allow Report percentage to be overridden.
if ($check
->getPercentOverride()) {
$percent_override = $check
->getPercentOverride();
}
// Store all checks.
$this->checks[$check_id] = $check;
// Abort the loop if the check says to bail.
if ($check
->shouldAbort()) {
break;
}
}
if ($percent_override) {
$this->percent = $percent_override;
}
else {
if ($this->scoreMax != 0) {
$this->percent = round($this->scoreTotal / $this->scoreMax * 100);
}
}
}
/**
* Returns a list of checks for this report.
*/
public function getChecksList() {
$this_def = $this
->getPluginDefinition();
$checkManager = \Drupal::service('plugin.manager.site_audit_check');
static $checkDefinitions = NULL;
if (empty($checkDefinitions)) {
$checkDefinitions = $checkManager
->getDefinitions();
}
$checksInReport = [];
foreach ($checkDefinitions as $checkDefinition) {
if ($checkDefinition['report'] == $this_def['id']) {
// This check belongs to this report.
$checksInReport[$checkDefinition['id']] = $checkDefinition;
}
}
uasort($checksInReport, [
$this,
'weightKeySort',
]);
$checks = [];
foreach ($checksInReport as $check) {
$checks[] = $check['id'];
}
return $checks;
}
/**
* Sort by weight.
*/
public function weightKeySort($a, $b) {
if ($a['weight'] > $b['weight']) {
return 1;
}
elseif ($a['weight'] < $b['weight']) {
return -1;
}
// They have the same weight, sort by id.
return strcmp($a['id'], $b['id']);
}
/**
* Returns an array of check objects.
*/
public function getCheckObjects() {
return $this->checks;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
SiteAuditReportBase:: |
protected | property | Individual check objects. | |
SiteAuditReportBase:: |
protected | property | Flag to indicate whether any of the checks are a complete FAIL. | |
SiteAuditReportBase:: |
protected | property | Percentage pass. | |
SiteAuditReportBase:: |
protected | property | Container that's passed between each Check. | |
SiteAuditReportBase:: |
protected | property | Maximum score. | |
SiteAuditReportBase:: |
protected | property | Total score. | |
SiteAuditReportBase:: |
public | function | Returns an array of check objects. | |
SiteAuditReportBase:: |
public | function | Returns a list of checks for this report. | |
SiteAuditReportBase:: |
public | function | Get the description for the report. | |
SiteAuditReportBase:: |
public | function | Get the label(name) for the report. | |
SiteAuditReportBase:: |
public | function | Get the percentage score for the report. | |
SiteAuditReportBase:: |
protected | function | Get the complete name of the report. | |
SiteAuditReportBase:: |
public | function | Sort by weight. | |
SiteAuditReportBase:: |
public | function |
Constructor. Overrides PluginBase:: |
|
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |