public function JsonldBundle::build

Overrides Symfony\Component\HttpKernel\Bundle\Bundle::build().

Overrides Bundle::build

File

drupal/core/modules/jsonld/lib/Drupal/jsonld/JsonldBundle.php, line 22
Definition of Drupal\jsonld\JsonldBundle.

Class

JsonldBundle
Jsonld dependency injection container.

Namespace

Drupal\jsonld

Code

public function build(ContainerBuilder $container) {
  $priority = 5;

  // Normalizers can be specified to support a particular class and format in
  // Normalizer::supportsNormalization(). Since the first matching Normalizer
  // is used, Normalizers should be ordered from most specific to least
  // specific.
  $normalizers = array(
    // Field Item.
    'entity_reference' => array(
      'jsonld' => 'Drupal\\jsonld\\JsonldEntityReferenceNormalizer',
    ),
    'field_item' => array(
      'jsonld' => 'Drupal\\jsonld\\JsonldFieldItemNormalizer',
    ),
    // Entity.
    'entity' => array(
      'jsonld' => 'Drupal\\jsonld\\JsonldEntityNormalizer',
    ),
  );

  // Encoders can only specify which format they support in
  // Encoder::supportsEncoding().
  $encoders = array(
    'jsonld' => 'Drupal\\jsonld\\JsonldEncoder',
  );

  // Add Normalizers to service container.
  foreach ($normalizers as $supported_class => $formats) {
    foreach ($formats as $format => $normalizer_class) {
      $container
        ->register("serializer.normalizer.{$supported_class}.{$format}", $normalizer_class)
        ->addTag('normalizer', array(
        'priority' => $priority,
      ));
    }
  }

  // Add Encoders to service container.
  foreach ($encoders as $format => $encoder_class) {
    $container
      ->register("serializer.encoder.{$format}", $encoder_class)
      ->addTag('encoder', array(
      'priority' => $priority,
    ));
  }
}