You are here

public function WarmerPluginManager::getWarmers in Warmer 2.x

Same name and namespace in other branches
  1. 8 src/Plugin/WarmerPluginManager.php \Drupal\warmer\Plugin\WarmerPluginManager::getWarmers()

Instantiates all the warmer plugins.

Return value

\Drupal\warmer\Plugin\WarmerPluginBase[] The plugin instances.

File

src/Plugin/WarmerPluginManager.php, line 39

Class

WarmerPluginManager
Manager for the warmer plugins.

Namespace

Drupal\warmer\Plugin

Code

public function getWarmers($plugin_ids = NULL) {
  if (!$plugin_ids) {
    $definitions = $this
      ->getDefinitions();
    $plugin_ids = array_map(function ($definition) {
      return empty($definition) ? NULL : $definition['id'];
    }, $definitions);
    $plugin_ids = array_filter(array_values($plugin_ids));
  }
  $warmers = array_map(function ($plugin_id) {
    try {
      return $this
        ->createInstance($plugin_id);
    } catch (PluginException $exception) {
      return NULL;
    }
  }, $plugin_ids);
  return array_filter($warmers, function ($warmer) {
    return $warmer instanceof WarmerPluginBase;
  });
}