From ef550aad309c4bae653f7ff6b135f26c79d49385 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Wed, 1 Jun 2022 14:07:15 -0700 Subject: [PATCH] (REF) Extract method \CRM_Upgrade_DispatchPolicy::useTemporarily() --- CRM/Upgrade/DispatchPolicy.php | 19 +++++++++++++++++++ CRM/Upgrade/Form.php | 5 +---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/CRM/Upgrade/DispatchPolicy.php b/CRM/Upgrade/DispatchPolicy.php index 7aa94a8e43..ebab0683a3 100644 --- a/CRM/Upgrade/DispatchPolicy.php +++ b/CRM/Upgrade/DispatchPolicy.php @@ -16,6 +16,25 @@ */ class CRM_Upgrade_DispatchPolicy { + /** + * Create an auto-clean object which temporarily applies the preferred policy. + * + * @code + * $cleanup = CRM_Upgrade_DispatchPolicy::useTemporarily('upgrade.finish'); + * doStuff(); + * unset($cleanup); + * @endCode + * + * @param string $name + * @return \CRM_Utils_AutoClean + */ + public static function useTemporarily(string $name): CRM_Utils_AutoClean { + Civi::dispatcher()->setDispatchPolicy(\CRM_Upgrade_DispatchPolicy::get($name)); + return \CRM_Utils_AutoClean::with(function() { + Civi::dispatcher()->setDispatchPolicy(\CRM_Upgrade_DispatchPolicy::get('upgrade.main')); + }); + } + /** * Determine the dispatch policy * diff --git a/CRM/Upgrade/Form.php b/CRM/Upgrade/Form.php index c16857ded3..97024a0d67 100644 --- a/CRM/Upgrade/Form.php +++ b/CRM/Upgrade/Form.php @@ -803,10 +803,7 @@ SET version = '$version' * @throws \CRM_Core_Exception */ public static function doCoreFinish(): bool { - Civi::dispatcher()->setDispatchPolicy(\CRM_Upgrade_DispatchPolicy::get('upgrade.finish')); - $restore = \CRM_Utils_AutoClean::with(function() { - Civi::dispatcher()->setDispatchPolicy(\CRM_Upgrade_DispatchPolicy::get('upgrade.main')); - }); + $restore = \CRM_Upgrade_DispatchPolicy::useTemporarily('upgrade.finish'); $upgrade = new CRM_Upgrade_Form(); list($ignore, $latestVer) = $upgrade->getUpgradeVersions(); -- 2.25.1