From 34ba82e872bd7cade9ca16072cd429ff23b2b73c Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 25 Mar 2016 13:58:02 -0700 Subject: [PATCH] CRM-16243 - CRM_Extension_Manager::install() - Refresh class-loader incrementally This allows an extension's installation logic to use a class defined by one of the (upstream) requirements. --- CRM/Extension/Manager.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CRM/Extension/Manager.php b/CRM/Extension/Manager.php index 3872b268f8..bdddca9211 100644 --- a/CRM/Extension/Manager.php +++ b/CRM/Extension/Manager.php @@ -222,6 +222,11 @@ class CRM_Extension_Manager { $typeManager->onPreEnable($info); $this->_setExtensionActive($info, 1); $typeManager->onPostEnable($info); + + // A full refresh would be preferrable but very slow. This at least allows + // later extensions to access classes from earlier extensions. + $this->statuses = NULL; + $this->mapper->refresh(); break; case self::STATUS_UNINSTALLED: @@ -229,6 +234,11 @@ class CRM_Extension_Manager { $typeManager->onPreInstall($info); $this->_createExtensionEntry($info); $typeManager->onPostInstall($info); + + // A full refresh would be preferrable but very slow. This at least allows + // later extensions to access classes from earlier extensions. + $this->statuses = NULL; + $this->mapper->refresh(); break; case self::STATUS_UNKNOWN: -- 2.25.1