system_get_info

system_get_info($type, $name = NULL)

Returns an array of information about enabled modules or themes.

This function returns the contents of the .info.yml file for each installed module or theme.

Parameters

$type: Either 'module' or 'theme'.

$name: (optional) The name of a module or theme whose information shall be returned. If omitted, all records for the provided $type will be returned. If $name does not exist in the provided $type or is not enabled, an empty array will be returned.

Return value

An associative array of module or theme information keyed by name, or only information for $name, if given. If no records are available, an empty array is returned.

See also

system_rebuild_module_data()

\Drupal\Core\Extension\ThemeHandlerInterface::rebuildThemeData()

File

core/modules/system/system.module, line 915
Configuration system that lets administrators modify the workings of the site.

Code

function system_get_info($type, $name = NULL) {
  if ($type == 'module') {
    $info = &drupal_static(__FUNCTION__);
    if (!isset($info)) {
      if ($cache = \Drupal::cache()->get('system.module.info')) {
        $info = $cache->data;
      }
      else {
        $data = system_rebuild_module_data();
        foreach (\Drupal::moduleHandler()->getModuleList() as $module => $filename) {
          if (isset($data[$module])) {
            $info[$module] = $data[$module]->info;
          }
        }
        // Store the module information in cache. This cache is cleared by
        // calling system_rebuild_module_data(), for example, when listing
        // modules, (un)installing modules, importing configuration, updating
        // the site and when flushing all the caches.
        \Drupal::cache()->set('system.module.info', $info);
      }
    }
  }
  else {
    $info = array();
    $list = system_list($type);
    foreach ($list as $shortname => $item) {
      if (!empty($item->status)) {
        $info[$shortname] = $item->info;
      }
    }
  }
  if (isset($name)) {
    return isset($info[$name]) ? $info[$name] : array();
  }
  return $info;
}
doc_Drupal
2016-10-29 09:45:55
Comments
Leave a Comment

Please login to continue.