You are here

public function BreakpointManager::getBreakpointsByGroup in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/breakpoint/src/BreakpointManager.php \Drupal\breakpoint\BreakpointManager::getBreakpointsByGroup()
  2. 9 core/modules/breakpoint/src/BreakpointManager.php \Drupal\breakpoint\BreakpointManager::getBreakpointsByGroup()

Gets breakpoints for the specified group.

Parameters

string $group: The breakpoint group to retrieve.

Return value

\Drupal\breakpoint\BreakpointInterface[] Array of breakpoint plugins keyed by machine name.

Overrides BreakpointManagerInterface::getBreakpointsByGroup

1 call to BreakpointManager::getBreakpointsByGroup()
BreakpointManager::getGroupProviders in core/modules/breakpoint/src/BreakpointManager.php
Gets all the providers for the specified breakpoint group.

File

core/modules/breakpoint/src/BreakpointManager.php, line 150

Class

BreakpointManager
Defines a breakpoint plugin manager to deal with breakpoints.

Namespace

Drupal\breakpoint

Code

public function getBreakpointsByGroup($group) {
  if (!isset($this->breakpointsByGroup[$group])) {
    if ($cache = $this->cacheBackend
      ->get($this->cacheKey . ':' . $group)) {
      $this->breakpointsByGroup[$group] = $cache->data;
    }
    else {
      $breakpoints = [];
      foreach ($this
        ->getDefinitions() as $plugin_id => $plugin_definition) {
        if ($plugin_definition['group'] == $group) {
          $breakpoints[$plugin_id] = $plugin_definition;
        }
      }
      uasort($breakpoints, [
        'Drupal\\Component\\Utility\\SortArray',
        'sortByWeightElement',
      ]);
      $this->cacheBackend
        ->set($this->cacheKey . ':' . $group, $breakpoints, Cache::PERMANENT, [
        'breakpoints',
      ]);
      $this->breakpointsByGroup[$group] = $breakpoints;
    }
  }
  $instances = [];
  foreach ($this->breakpointsByGroup[$group] as $plugin_id => $definition) {
    if (!isset($this->instances[$plugin_id])) {
      $this->instances[$plugin_id] = $this
        ->createInstance($plugin_id);
    }
    $instances[$plugin_id] = $this->instances[$plugin_id];
  }
  return $instances;
}