You are here

class FileEntityServiceProvider in File Entity (fieldable files) 8.2

Service Provider for File entity.

Hierarchy

Expanded class hierarchy of FileEntityServiceProvider

File

src/FileEntityServiceProvider.php, line 15

Namespace

Drupal\file_entity
View source
class FileEntityServiceProvider extends ServiceProviderBase {

  /**
   * {@inheritdoc}
   */
  public function alter(ContainerBuilder $container) {
    $modules = $container
      ->getParameter('container.modules');
    if (isset($modules['hal'])) {

      // Add a normalizer service for file entities.
      $service_definition = new Definition(FileEntityNormalizer::class, array(
        new Reference('hal.link_manager'),
        new Reference('entity_type.manager'),
        new Reference('module_handler'),
        new Reference('entity_type.repository'),
        new Reference('entity_field.manager'),
      ));

      // The priority must be higher than that of
      // serializer.normalizer.file_entity.hal in hal.services.yml
      $service_definition
        ->addTag('normalizer', array(
        'priority' => 30,
      ));
      $container
        ->setDefinition('serializer.normalizer.entity.file_entity', $service_definition);

      // Add a normalizer service for file fields.
      $service_definition = new Definition(FileItemNormalizer::class, array(
        new Reference('hal.link_manager'),
        new Reference('serializer.entity_resolver'),
      ));

      // Supersede EntityReferenceItemNormalizer.
      $service_definition
        ->addTag('normalizer', array(
        'priority' => 20,
      ));
      $container
        ->setDefinition('serializer.normalizer.entity_reference_item.file_entity', $service_definition);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
FileEntityServiceProvider::alter public function Modifies existing service definitions. Overrides ServiceProviderBase::alter
ServiceProviderBase::register public function Registers services to the container. Overrides ServiceProviderInterface::register 1