public function EntityCdfSerializer::unserializeEntities in Acquia Content Hub 8.2
Unserializes a CDF into a list of Drupal entities.
@todo add more docs about the expected CDF format.
Parameters
\Acquia\ContentHubClient\CDFDocument $cdf: The CDF Document.
\Drupal\depcalc\DependencyStack $stack: The dependency stack object.
Throws
\Drupal\Core\Entity\EntityStorageException
\Exception
File
- src/EntityCdfSerializer.php, line 144 
Class
- EntityCdfSerializer
- Serialize an entity to a CDF format.
Namespace
Drupal\acquia_contenthubCode
public function unserializeEntities(CDFDocument $cdf, DependencyStack $stack) {
  if (!$cdf
    ->hasEntities()) {
    throw new \Exception("Missing CDF Entities entry. Not a valid CDF.");
  }
  $cdf = $this
    ->preprocessCdf($cdf, $stack);
  // Install required modules.
  $this
    ->handleModules($cdf, $stack);
  // Organize the entities into a dependency chain.
  // Use a while loop to prevent memory expansion due to recursion.
  while (!$stack
    ->hasDependencies(array_keys($cdf
    ->getEntities()))) {
    // @todo add tracking to break out of the while loop when dependencies cannot be further processed.
    $count = count($stack
      ->getDependencies());
    $this
      ->processCdf($cdf, $stack);
    $this
      ->handleImportFailure($count, $cdf, $stack);
  }
  $this->tracker
    ->cleanUp();
}