public function Exporter::exportContent in Default Content for D8 8
Same name and namespace in other branches
- 2.0.x src/Exporter.php \Drupal\default_content\Exporter::exportContent()
Exports a single entity as importContent expects it.
Parameters
string $entity_type_id: The entity type ID.
mixed $entity_id: The entity ID to export.
Return value
string The rendered export as hal.
Overrides ExporterInterface::exportContent
1 call to Exporter::exportContent()
- Exporter::exportModuleContent in src/Exporter.php 
- Exports all of the content defined in a module's info file.
File
- src/Exporter.php, line 135 
Class
- Exporter
- A service for handling import of default content.
Namespace
Drupal\default_contentCode
public function exportContent($entity_type_id, $entity_id) {
  $storage = $this->entityTypeManager
    ->getStorage($entity_type_id);
  $entity = $storage
    ->load($entity_id);
  if (!$entity) {
    throw new \InvalidArgumentException(sprintf('Entity "%s" with ID "%s" does not exist', $entity_type_id, $entity_id));
  }
  if (!$entity instanceof ContentEntityInterface) {
    throw new \InvalidArgumentException(sprintf('Entity "%s" with ID "%s" is not a content entity', $entity_type_id, $entity_id));
  }
  if ($this
    ->isCli()) {
    $root_user = $this->entityTypeManager
      ->getStorage('user')
      ->load(1);
    $this->accountSwitcher
      ->switchTo($root_user);
  }
  $this->linkManager
    ->setLinkDomain($this->linkDomain);
  $return = $this->serializer
    ->serialize($entity, 'hal_json', [
    'json_encode_options' => JSON_PRETTY_PRINT,
  ]);
  $this->eventDispatcher
    ->dispatch(DefaultContentEvents::EXPORT, new ExportEvent($entity));
  // Reset the link domain and the current user, if needed.
  $this->linkManager
    ->setLinkDomain(FALSE);
  if ($this
    ->isCli()) {
    $this->accountSwitcher
      ->switchBack();
  }
  return $return;
}