You are here

protected function RegisterSerializationClassesCompilerPass::sort in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php \Drupal\serialization\RegisterSerializationClassesCompilerPass::sort()
  2. 10 core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php \Drupal\serialization\RegisterSerializationClassesCompilerPass::sort()

Sorts by priority.

Order services from highest priority number to lowest (reverse sorting).

Parameters

array $services: A nested array keyed on priority number. For each priority number, the value is an array of Symfony\Component\DependencyInjection\Reference objects, each a reference to a normalizer or encoder service.

Return value

array A flattened array of Reference objects from $services, ordered from high to low priority.

2 calls to RegisterSerializationClassesCompilerPass::sort()
RegisterSerializationClassesCompilerPass::process in core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php
Adds services to the Serializer.
RegisterSerializationClassesCompilerPass::process in core/modules/jsonapi/src/DependencyInjection/Compiler/RegisterSerializationClassesCompilerPass.php
Adds services to the JSON:API Serializer.

File

core/modules/serialization/src/RegisterSerializationClassesCompilerPass.php, line 95

Class

RegisterSerializationClassesCompilerPass
Adds services tagged 'normalizer' and 'encoder' to the Serializer.

Namespace

Drupal\serialization

Code

protected function sort($services) {
  $sorted = [];
  krsort($services);

  // Flatten the array.
  foreach ($services as $a) {
    $sorted = array_merge($sorted, $a);
  }
  return $sorted;
}