class EntityRendered in GraphQL 8.4
Returns the rendered entity in a given view mode.
Plugin annotation
@DataProducer(
  id = "entity_rendered",
  name = @Translation("Entity rendered"),
  description = @Translation("Returns the rendered entity."),
  produces = @ContextDefinition("string",
    label = @Translation("Rendered output")
  ),
  consumes = {
    "entity" = @ContextDefinition("entity",
      label = @Translation("Entity")
    ),
    "mode" = @ContextDefinition("string",
      label = @Translation("View mode"),
      required = FALSE
    )
  }
)
  Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
- class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
- class \Drupal\graphql\Plugin\GraphQL\DataProducer\DataProducerPluginBase implements DataProducerPluginInterface uses DataProducerPluginCachingTrait
- class \Drupal\graphql\Plugin\GraphQL\DataProducer\Entity\EntityRendered implements ContainerFactoryPluginInterface uses DependencySerializationTrait
 
 
 - class \Drupal\graphql\Plugin\GraphQL\DataProducer\DataProducerPluginBase implements DataProducerPluginInterface uses DataProducerPluginCachingTrait
 
 - class \Drupal\Core\Plugin\ContextAwarePluginBase implements CacheableDependencyInterface, ContextAwarePluginInterface uses DependencySerializationTrait, StringTranslationTrait, TypedDataTrait
 
 - class \Drupal\Component\Plugin\ContextAwarePluginBase implements ContextAwarePluginInterface
 
Expanded class hierarchy of EntityRendered
File
- src/
Plugin/ GraphQL/ DataProducer/ Entity/ EntityRendered.php, line 36  
Namespace
Drupal\graphql\Plugin\GraphQL\DataProducer\EntityView source
class EntityRendered extends DataProducerPluginBase implements ContainerFactoryPluginInterface {
  use DependencySerializationTrait;
  /**
   * The entity type manager service.
   *
   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
   */
  protected $entityTypeManager;
  /**
   * The renderer service.
   *
   * @var \Drupal\Core\Render\RendererInterface
   */
  protected $renderer;
  /**
   * {@inheritdoc}
   *
   * @codeCoverageIgnore
   */
  public static function create(ContainerInterface $container, array $configuration, $pluginId, $pluginDefinition) {
    return new static($configuration, $pluginId, $pluginDefinition, $container
      ->get('entity_type.manager'), $container
      ->get('renderer'));
  }
  /**
   * EntityRendered constructor.
   *
   * @param array $configuration
   *   The plugin configuration array.
   * @param string $pluginId
   *   The plugin id.
   * @param mixed $pluginDefinition
   *   The plugin definition.
   * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entityTypeManager
   *   The entity type manager service.
   * @param \Drupal\Core\Render\RendererInterface $renderer
   *   The renderer service.
   *
   * @codeCoverageIgnore
   */
  public function __construct(array $configuration, $pluginId, $pluginDefinition, EntityTypeManagerInterface $entityTypeManager, RendererInterface $renderer) {
    parent::__construct($configuration, $pluginId, $pluginDefinition);
    $this->entityTypeManager = $entityTypeManager;
    $this->renderer = $renderer;
  }
  /**
   * Resolver.
   *
   * @param \Drupal\Core\Entity\EntityInterface $entity
   * @param string|null $mode
   * @param \Drupal\Core\Cache\RefinableCacheableDependencyInterface $metadata
   *
   * @return string
   */
  public function resolve(EntityInterface $entity, $mode, RefinableCacheableDependencyInterface $metadata) {
    $mode = $mode ?? 'full';
    $builder = $this->entityTypeManager
      ->getViewBuilder($entity
      ->getEntityTypeId());
    $view = $builder
      ->view($entity, $mode, $entity
      ->language()
      ->getId());
    $context = new RenderContext();
    $result = $this->renderer
      ->executeInRenderContext($context, function () use ($view) {
      return $this->renderer
        ->render($view);
    });
    if (!$context
      ->isEmpty()) {
      $metadata
        ->addCacheableDependency($context
        ->pop());
    }
    return (string) $result;
  }
}Members
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            ContextAwarePluginBase:: | 
                  protected | property | The data objects representing the context of this plugin. | |
| 
            ContextAwarePluginBase:: | 
                  private | property | Data objects representing the contexts passed in the plugin configuration. | |
| 
            ContextAwarePluginBase:: | 
                  protected | function | Wraps the context handler. | |
| 
            ContextAwarePluginBase:: | 
                  protected | function | 
            Overrides ContextAwarePluginBase:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            The cache contexts associated with this object. Overrides CacheableDependencyInterface:: | 
                  9 | 
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            The maximum age for which this object may be cached. Overrides CacheableDependencyInterface:: | 
                  7 | 
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            The cache tags associated with this object. Overrides CacheableDependencyInterface:: | 
                  4 | 
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            This code is identical to the Component in order to pick up a different
Context class. Overrides ContextAwarePluginBase:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Gets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Gets the defined contexts. Overrides ContextAwarePluginInterface:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Gets the value for a defined context. Overrides ContextAwarePluginInterface:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Set a context on this plugin. Overrides ContextAwarePluginBase:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Sets a mapping of the expected assignment names to their context names. Overrides ContextAwarePluginInterface:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Sets the value for a defined context. Overrides ContextAwarePluginBase:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | 
            Validates the set values for the defined contexts. Overrides ContextAwarePluginInterface:: | 
                  |
| 
            ContextAwarePluginBase:: | 
                  public | function | Implements magic __get() method. | |
| 
            DataProducerPluginBase:: | 
                  public | function | 
            Overrides ContextAwarePluginBase:: | 
                  |
| 
            DataProducerPluginBase:: | 
                  public | function | 
            Gets the context definitions of the plugin. Overrides ContextAwarePluginBase:: | 
                  |
| 
            DataProducerPluginBase:: | 
                  public | function | 
            Resolves the queried field with the given context. Overrides DataProducerPluginInterface:: | 
                  |
| 
            DataProducerPluginCachingTrait:: | 
                  public | function | ||
| 
            DataProducerPluginCachingTrait:: | 
                  abstract public | function | ||
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of entity type IDs keyed by the property name of their storages. | |
| 
            DependencySerializationTrait:: | 
                  protected | property | An array of service IDs keyed by property name used for serialization. | |
| 
            DependencySerializationTrait:: | 
                  public | function | 1 | |
| 
            DependencySerializationTrait:: | 
                  public | function | 2 | |
| 
            EntityRendered:: | 
                  protected | property | The entity type manager service. | |
| 
            EntityRendered:: | 
                  protected | property | The renderer service. | |
| 
            EntityRendered:: | 
                  public static | function | 
            @codeCoverageIgnore Overrides ContainerFactoryPluginInterface:: | 
                  |
| 
            EntityRendered:: | 
                  public | function | Resolver. | |
| 
            EntityRendered:: | 
                  public | function | 
            EntityRendered constructor. Overrides ContextAwarePluginBase:: | 
                  |
| 
            PluginBase:: | 
                  protected | property | Configuration information passed into the plugin. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin implementation definition. | 1 | 
| 
            PluginBase:: | 
                  protected | property | The plugin_id. | |
| 
            PluginBase:: | 
                  constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
| 
            PluginBase:: | 
                  public | function | 
            Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | 
            Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: | 
                  3 | 
| 
            PluginBase:: | 
                  public | function | 
            Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: | 
                  |
| 
            PluginBase:: | 
                  public | function | Determines if the plugin is configurable. | |
| 
            StringTranslationTrait:: | 
                  protected | property | The string translation service. | 1 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Formats a string containing a count of items. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Returns the number of plurals supported by a given language. | |
| 
            StringTranslationTrait:: | 
                  protected | function | Gets the string translation service. | |
| 
            StringTranslationTrait:: | 
                  public | function | Sets the string translation service to use. | 2 | 
| 
            StringTranslationTrait:: | 
                  protected | function | Translates a string to the current language or to a given language. | |
| 
            TypedDataTrait:: | 
                  protected | property | The typed data manager used for creating the data types. | |
| 
            TypedDataTrait:: | 
                  public | function | Gets the typed data manager. | 2 | 
| 
            TypedDataTrait:: | 
                  public | function | Sets the typed data manager. | 2 |