/** * Replicates module_list(FALSE, FALSE, $sort, $fixed_list) * * @param array $fixed_list * @param bool $sort * * @return string[] */ function setModuleList($fixed_list, $sort = FALSE) { foreach ($fixed_list as $name => $module) { $this->drupalGetFilename->drupalSetFilename('module', $name, $module['filename']); $this->list[$name] = $name; } if ($sort) { return $this->moduleListSorted(); } return $this->list; }
/** * Replicates system_list('bootstrap') * * @see system_list() * * @return array|null */ function systemListBootstrap() { $lists =& $this->drupalStatic->get('system_list'); // For bootstrap modules, attempt to fetch the list from cache if possible. // if not fetch only the required information to fire bootstrap hooks // in case we are going to serve the page from cache. if (isset($lists['bootstrap'])) { return $lists['bootstrap']; } if ($cached = $this->cache->cacheGet('bootstrap_modules', 'cache_bootstrap')) { $bootstrap_list = $cached->data; } else { $bootstrap_list = $this->systemListLoader->fetchBootstrapSystemList(); $this->cache->cacheSet('bootstrap_modules', $bootstrap_list, 'cache_bootstrap'); } // To avoid a separate database lookup for the filepath, prime the // drupal_get_filename() static cache for bootstrap modules only. // The rest is stored separately to keep the bootstrap module cache small. foreach ($bootstrap_list as $module) { $this->drupalGetFilename->drupalSetFilename('module', $module->name, $module->filename); } // We only return the module names here since module_list() doesn't need // the filename itself. return $lists['bootstrap'] = array_keys($bootstrap_list); }