entityTypeManager = $entity_type_manager; $this->entityRepository = $entity_repository; } /** * Builds a render array for a given entity. */ public function build(EntityInterface $entity, string $view_mode = 'full', string $langcode = NULL, bool $check_access = TRUE): array { $build = []; $entity = $this->entityRepository->getTranslationFromContext($entity, $langcode); $access = $check_access ? $entity->access('view', NULL, TRUE) : AccessResult::allowed(); if ($access->isAllowed()) { $build = $this->entityTypeManager ->getViewBuilder($entity->getEntityTypeId()) ->view($entity, $view_mode, $langcode); } CacheableMetadata::createFromRenderArray($build) ->addCacheableDependency($access) ->addCacheableDependency($entity) ->applyTo($build); return $build; } }