entityTypeManager = $entity_type_manager; } /** * 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 = []; $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) ->merge(CacheableMetadata::createFromObject($entity)) ->merge(CacheableMetadata::createFromObject($access)) ->applyTo($build); return $build; } }