Unverified Commit e1f51615 authored by Daniel Wehner's avatar Daniel Wehner Committed by Mark Halliwell
Browse files

Issue #3133425 by dawehner, markcarver: Performance SettingsManager::getDefinitions()

parent b5d56400
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -84,6 +84,17 @@ class PluginManager extends DefaultPluginManager {
    return parent::createInstance($plugin_id, $configuration);
  }

  /**
   * {@inheritdoc}
   */
  protected function findDefinitions() {
    $definitions = parent::findDefinitions();

    $this->sortDefinitions($definitions);

    return $definitions;
  }

  /**
   * Retrieves the cache tags used to invalidate caches.
   *
@@ -94,17 +105,6 @@ class PluginManager extends DefaultPluginManager {
    return [Bootstrap::CACHE_TAG];
  }

  /**
   * {@inheritdoc}
   */
  public function getDefinitions($sorted = TRUE) {
    $definitions = parent::getDefinitions();
    if ($sorted) {
      uasort($definitions, ['\Drupal\Component\Utility\SortArray', 'sortByWeightElement']);
    }
    return $definitions;
  }

  /**
   * Retrieves all definitions where the plugin ID matches a certain criteria.
   *
@@ -133,4 +133,14 @@ class PluginManager extends DefaultPluginManager {
    return $this->themeHandler->themeExists($provider);
  }

  /**
   * Sorts the plugin definitions.
   *
   * @param array $definitions
   *   The unsorted plugin definitions, passed by reference.
   */
  protected function sortDefinitions(array &$definitions) {
    uasort($definitions, ['\Drupal\Component\Utility\SortArray', 'sortByWeightElement']);
  }

}
+2 −6
Original line number Diff line number Diff line
@@ -39,13 +39,9 @@ class SettingManager extends PluginManager {
  /**
   * {@inheritdoc}
   */
  public function getDefinitions($sorted = TRUE) {
    $definitions = parent::getDefinitions(FALSE);
    if ($sorted) {
  protected function sortDefinitions(array &$definitions) {
    uasort($definitions, [$this, 'sort']);
  }
    return $definitions;
  }

  /**
   * Sorts the setting plugin definitions.
+4 −10
Original line number Diff line number Diff line
@@ -37,19 +37,13 @@ class UpdateManager extends PluginManager {
  /**
   * {@inheritdoc}
   */
  public function getDefinitions($sorted = TRUE) {
    $definitions = parent::getDefinitions();

  protected function sortDefinitions(array &$definitions) {
    // Sort by the schema number (a.k.a. plugin ID).
    if ($sorted) {
    uasort($definitions, function ($a, $b) {
      return SortArray::sortByKeyInt($a, $b, 'id');
    });
  }

    return $definitions;
  }

  /**
   * Retrieves the latest update schema.
   *