AngularManager - Simplify caching
authorcolemanw <coleman@civicrm.org>
Mon, 5 Feb 2024 19:25:37 +0000 (14:25 -0500)
committercolemanw <coleman@civicrm.org>
Tue, 6 Feb 2024 11:42:10 +0000 (06:42 -0500)
In 604cca72 the cache was split into smaller pieces in an attempt to fix some failing tests.
It turned out those fails for other reasons so there's no need to have > 1 cache for angularModules.

Fixes https://lab.civicrm.org/dev/core/-/issues/4969

Civi/Angular/Manager.php

index 37e115c7b781ba85eefed710da0072003269022a..ee5c65c4631fb3e329170c5adecb0589dd8f6191 100644 (file)
@@ -77,10 +77,9 @@ class Manager {
    *     List of settings to preload.
    */
   public function getModules() {
-    $moduleNames = $this->cache->get('moduleNames');
-    $angularModules = [];
+    $angularModules = $this->cache->get('angularModules') ?? [];
     // Cache not set, fetch fresh list of modules and store in cache
-    if (!$moduleNames) {
+    if (!$angularModules) {
       // Load all modules from CiviCRM core
       $files = (array) glob(\Civi::paths()->getPath('[civicrm.root]/ang/*.ang.php'));
       foreach ($files as $file) {
@@ -113,16 +112,7 @@ class Manager {
         }
       }
       $angularModules = $this->resolvePatterns($angularModules);
-      $this->cache->set('moduleNames', array_keys($angularModules));
-      foreach ($angularModules as $moduleName => $moduleInfo) {
-        $this->cache->set("module $moduleName", $moduleInfo);
-      }
-    }
-    // Rehydrate modules from cache
-    else {
-      foreach ($moduleNames as $moduleName) {
-        $angularModules[$moduleName] = $this->cache->get("module $moduleName");
-      }
+      $this->cache->set('angularModules', $angularModules);
     }
 
     return $angularModules;