From dde51df82908c644c3f511103ab3a14bdd3db57e Mon Sep 17 00:00:00 2001 From: "Theresa.Grannum" <theresa.grannum@3688861.no-reply.drupal.org> Date: Fri, 1 Apr 2022 18:46:49 +0000 Subject: [PATCH] Issue #3272061 by Theresa.Grannum, tedbow: AU Extension: Create new ExtensionUpdater class and service --- .../automatic_updates_extensions.services.yml | 13 +++++++ .../src/ExtensionUpdater.php | 11 ++++++ .../src/Form/UpdaterForm.php | 37 ++++++------------- 3 files changed, 36 insertions(+), 25 deletions(-) create mode 100644 automatic_updates_extensions/automatic_updates_extensions.services.yml create mode 100644 automatic_updates_extensions/src/ExtensionUpdater.php diff --git a/automatic_updates_extensions/automatic_updates_extensions.services.yml b/automatic_updates_extensions/automatic_updates_extensions.services.yml new file mode 100644 index 0000000000..ba5bd80723 --- /dev/null +++ b/automatic_updates_extensions/automatic_updates_extensions.services.yml @@ -0,0 +1,13 @@ +services: + automatic_updates_extensions.updater: + class: Drupal\automatic_updates_extensions\ExtensionUpdater + arguments: + - '@config.factory' + - '@package_manager.path_locator' + - '@package_manager.beginner' + - '@package_manager.stager' + - '@package_manager.committer' + - '@file_system' + - '@event_dispatcher' + - '@tempstore.shared' + - '@datetime.time' diff --git a/automatic_updates_extensions/src/ExtensionUpdater.php b/automatic_updates_extensions/src/ExtensionUpdater.php new file mode 100644 index 0000000000..dbb577cf36 --- /dev/null +++ b/automatic_updates_extensions/src/ExtensionUpdater.php @@ -0,0 +1,11 @@ +<?php + +namespace Drupal\automatic_updates_extensions; + +use Drupal\package_manager\Stage; + +/** + * Defines a service to perform updates for modules and themes. + */ +class ExtensionUpdater extends Stage { +} diff --git a/automatic_updates_extensions/src/Form/UpdaterForm.php b/automatic_updates_extensions/src/Form/UpdaterForm.php index a032b5773c..8f2579e009 100644 --- a/automatic_updates_extensions/src/Form/UpdaterForm.php +++ b/automatic_updates_extensions/src/Form/UpdaterForm.php @@ -4,9 +4,9 @@ namespace Drupal\automatic_updates_extensions\Form; use Drupal\automatic_updates\Event\ReadinessCheckEvent; use Drupal\automatic_updates\Validation\ReadinessTrait; +use Drupal\automatic_updates_extensions\ExtensionUpdater; use Drupal\Core\Form\FormBase; use Drupal\Core\Form\FormStateInterface; -use Drupal\package_manager\Stage; use Drupal\system\SystemManager; use Drupal\update\UpdateManagerInterface; use Symfony\Component\DependencyInjection\ContainerInterface; @@ -20,11 +20,11 @@ class UpdaterForm extends FormBase { use ReadinessTrait; /** - * The updater service. + * The extension updater service. * - * @var \Drupal\automatic_updates\Updater + * @var \Drupal\automatic_updates_extensions\ExtensionUpdater */ - private $stage; + private $extensionUpdater; /** * The event dispatcher service. @@ -37,21 +37,8 @@ class UpdaterForm extends FormBase { * {@inheritdoc} */ public static function create(ContainerInterface $container) { - // @todo Create a our servcie that extends stage instead of creating a - // generic stage class here. - $stage = new Stage( - $container->get('config.factory'), - $container->get('package_manager.path_locator'), - $container->get('package_manager.beginner'), - $container->get('package_manager.stager'), - $container->get('package_manager.committer'), - $container->get('file_system'), - $container->get('event_dispatcher'), - $container->get('tempstore.shared'), - $container->get('datetime.time') - ); return new static( - $stage, + $container->get('automatic_updates_extensions.updater'), $container->get('event_dispatcher'), ); } @@ -59,13 +46,13 @@ class UpdaterForm extends FormBase { /** * Constructs a new UpdaterForm object. * - * @param \Drupal\package_manager\Stage $stage - * The stage service. + * @param \Drupal\automatic_updates_extensions\ExtensionUpdater $extension_updater + * The extension updater service. * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $event_dispatcher * The extension event dispatcher service. */ - public function __construct(Stage $stage, EventDispatcherInterface $event_dispatcher) { - $this->stage = $stage; + public function __construct(ExtensionUpdater $extension_updater, EventDispatcherInterface $event_dispatcher) { + $this->extensionUpdater = $extension_updater; $this->eventDispatcher = $event_dispatcher; } @@ -124,7 +111,7 @@ class UpdaterForm extends FormBase { $results = []; } else { - $event = new ReadinessCheckEvent($this->stage); + $event = new ReadinessCheckEvent($this->extensionUpdater); $this->eventDispatcher->dispatch($event); $results = $event->getResults(); } @@ -149,7 +136,7 @@ class UpdaterForm extends FormBase { */ protected function actions(FormStateInterface $form_state): array { $actions = ['#type' => 'actions']; - if (!$this->stage->isAvailable()) { + if (!$this->extensionUpdater->isAvailable()) { // If the form has been submitted do not display this error message // because ::deleteExistingUpdate() may run on submit. The message will // still be displayed on form build if needed. @@ -175,7 +162,7 @@ class UpdaterForm extends FormBase { * Submit function to delete an existing in-progress update. */ public function deleteExistingUpdate(): void { - $this->stage->destroy(TRUE); + $this->extensionUpdater->destroy(TRUE); $this->messenger()->addMessage($this->t("Staged update deleted")); } -- GitLab