presto-8.x-2.2/src/Mixins/WeightedPluginManagerTrait.php
src/Mixins/WeightedPluginManagerTrait.php
<?php namespace Drupal\presto\Mixins; /** * Adds definition sorting (by weight) to plugin managers. * * @package Drupal\presto\Mixins */ trait WeightedPluginManagerTrait { /** * Sorts plugins by weight. * * @param array $definitions * List of plugin definitions, each MUST have a 'weight' key. * * @return array * Sorted definitions. */ protected function sortByWeight(array $definitions) { // Sort definitions by weight before returning. uasort($definitions, function ($first, $second) { if ($first['weight'] === $second['weight']) { return 0; } return ($first['weight'] < $second['weight']) ? -1 : 1; }); return $definitions; } }