function MediaRequirements::getRequirements
Check installation requirements.
Classes implementing this must be in the Install/Requirements namespace. For example src/Install/Requirements/ModuleNameRequirements.php.
During the 'install' phase, modules can for example assert that library or server versions are available or sufficient. Note that the installation of a module can happen during installation of Drupal itself (by install.php) with an installation profile or later by hand. As a consequence, install-time requirements must be checked without access to the full Drupal API, because it is not available during install.php. If a requirement has a severity of RequirementSeverity::Error, install.php will abort or at least the module will not install. Other severity levels have no effect on the installation. Module dependencies do not belong to these installation requirements, but should be defined in the module's .info.yml file.
During installation, if you need to load a class from your module, you'll need to include the class file directly.
Return value
array An associative array where the keys are arbitrary but must be unique (it is suggested to use the module short name as a prefix) and the values are themselves associative arrays with the following elements:
- title: The name of the requirement.
- value: This should only be used for version numbers, do not set it if not applicable.
- description: The description of the requirement/status.
- severity: (optional) An instance of \Drupal\Core\Extension\Requirement\RequirementSeverity enum. Defaults to RequirementSeverity::OK when installing.
Overrides InstallRequirementsInterface::getRequirements
File
-
core/
modules/ media/ src/ Install/ Requirements/ MediaRequirements.php, line 19
Class
- MediaRequirements
- Install time requirements for the media module.
Namespace
Drupal\media\Install\RequirementsCode
public static function getRequirements() : array {
$requirements = [];
$destination = 'public://media-icons/generic';
\Drupal::service('file_system')->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
$is_writable = is_writable($destination);
$is_directory = is_dir($destination);
if (!$is_writable || !$is_directory) {
if (!$is_directory) {
$error = t('The directory %directory does not exist.', [
'%directory' => $destination,
]);
}
else {
$error = t('The directory %directory is not writable.', [
'%directory' => $destination,
]);
}
$description = t('An automated attempt to create this directory failed, possibly due to a permissions problem. To proceed with the installation, either create the directory and modify its permissions manually or ensure that the installer has the permissions to create it automatically. For more information, see INSTALL.txt or the <a href=":handbook_url">online handbook</a>.', [
':handbook_url' => 'https://www.drupal.org/server-permissions',
]);
$description = $error . ' ' . $description;
$requirements['media']['description'] = $description;
$requirements['media']['severity'] = RequirementSeverity::Error;
}
return $requirements;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.