geolocation-8.x-3.x-dev/modules/geolocation_geometry/geolocation_geometry.install
modules/geolocation_geometry/geolocation_geometry.install
<?php
/**
* @file
* Sth sth dark side.
*/
/**
* Implements hook_requirements().
*/
function geolocation_geometry_requirements(string $phase): array {
$requirements = [];
$requirements['geolocation_geometry_database_compatibility'] = [
'title' => t('Geolocation Geometry - Database Compatibility'),
'value' => t('Database meets required spatial data capability.'),
'description' => t('Requires MySQL >= 8 or MariaDB >= 10.1.2 or PostgreSQL with PostGIS installed.'),
'severity' => REQUIREMENT_OK,
];
// Must be MySQL >= 5.7.6 or MariaDB >= 10.1.2.
$connection = Drupal::database();
if ($connection->driver() === 'mysql') {
$version = $connection->version();
if ((float) substr($version, 0, 5) >= 8) {
return $requirements;
}
elseif (
str_contains($version, 'MariaDB')
&& str_contains($version, '10.')
&& !str_contains($version, '10.0')
) {
return $requirements;
}
}
elseif ($connection->driver() === 'pgsql') {
return $requirements;
}
$requirements['geolocation_geometry_database_compatibility']['value'] = t('Database version %version does not meet required spatial data capability.', ['%version' => $connection->version()]);
$requirements['geolocation_geometry_database_compatibility']['severity'] = REQUIREMENT_ERROR;
return $requirements;
}
