public function DatabaseCollation::calculateScore in Site Audit 8.3
.
Overrides SiteAuditCheckBase::calculateScore
File
- src/
Plugin/ SiteAuditCheck/ DatabaseCollation.php, line 88
Class
- DatabaseCollation
- Provides the CronLast Check.
Namespace
Drupal\site_audit\Plugin\SiteAuditCheckCode
public function calculateScore() {
$connection = Database::getConnection();
$query = \Drupal::database()
->select('information_schema.TABLES', 'ist');
$query
->addField('ist', 'TABLE_NAME', 'name');
$query
->addField('ist', 'TABLE_COLLATION', 'collation');
$query
->condition('ist.TABLE_COLLATION', [
'utf8_general_ci',
'utf8_unicode_ci',
'utf8_bin',
'utf8mb4_general_ci',
], 'NOT IN');
$query
->condition('ist.table_schema', $connection
->getConnectionOptions()['database']);
$result = $query
->execute();
$count = 0;
$warn = FALSE;
while ($row = $result
->fetchAssoc()) {
$count++;
$this->registry->collation_tables[$row['name']] = $row['collation'];
// Special case for old imports.
if ($row['collation'] == 'latin1_swedish_ci') {
$warn = TRUE;
}
}
if ($count === 0) {
return SiteAuditCheckBase::AUDIT_CHECK_SCORE_PASS;
}
if ($warn) {
return SiteAuditCheckBase::AUDIT_CHECK_SCORE_WARN;
}
return SiteAuditCheckBase::AUDIT_CHECK_SCORE_INFO;
}