From 26efea98bd7a159b693f7f1df151d9068d4bf83f Mon Sep 17 00:00:00 2001 From: tedbow <tedbow@240860.no-reply.drupal.org> Date: Tue, 5 Oct 2021 13:48:40 +0000 Subject: [PATCH] Issue #3240753 by tedbow, phenaproxima: Prevent install if Composer dependencies are not present --- automatic_updates.install | 18 ++++++++++++------ package_manager/package_manager.install | 20 ++++++++++++++++++++ 2 files changed, 32 insertions(+), 6 deletions(-) create mode 100644 package_manager/package_manager.install diff --git a/automatic_updates.install b/automatic_updates.install index a4b7e81fd5..d3df02c1a0 100644 --- a/automatic_updates.install +++ b/automatic_updates.install @@ -11,11 +11,17 @@ use Drupal\automatic_updates\Validation\ReadinessRequirements; * Implements hook_requirements(). */ function automatic_updates_requirements($phase) { - if ($phase !== 'runtime') { - return []; + if ($phase === 'runtime') { + /** @var \Drupal\automatic_updates\Validation\ReadinessRequirements $readiness_requirement */ + $readiness_requirement = \Drupal::classResolver(ReadinessRequirements::class); + return $readiness_requirement->getRequirements(); + } + if ($phase === 'install' && !class_exists('PhpTuf\ComposerStager\Domain\Beginner')) { + return [ + 'automatic_updates' => [ + 'description' => t('External dependencies for Automatic Updates are not available. Composer must be used to download the module with dependencies.'), + 'severity' => REQUIREMENT_ERROR, + ], + ]; } - - /** @var \Drupal\automatic_updates\Validation\ReadinessRequirements $readiness_requirement */ - $readiness_requirement = \Drupal::classResolver(ReadinessRequirements::class); - return $readiness_requirement->getRequirements(); } diff --git a/package_manager/package_manager.install b/package_manager/package_manager.install new file mode 100644 index 0000000000..3162de1233 --- /dev/null +++ b/package_manager/package_manager.install @@ -0,0 +1,20 @@ +<?php + +/** + * @file + * Contains install and update functions for Package Manager. + */ + +/** + * Implements hook_requirements(). + */ +function package_manager_requirements($phase) { + if ($phase === 'install' && !class_exists('PhpTuf\ComposerStager\Domain\Beginner')) { + return [ + 'package_manager' => [ + 'description' => t('External dependencies for Package Manager are not available. Composer must be used to download the module with dependencies.'), + 'severity' => REQUIREMENT_ERROR, + ], + ]; + } +} -- GitLab