annotate modules/contrib/migrate_plus/src/Plugin/Discovery/ConfigEntityDiscovery.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 namespace Drupal\migrate_plus\Plugin\Discovery;
Chris@0 4
Chris@0 5 use Drupal\Component\Plugin\Discovery\DiscoveryInterface;
Chris@0 6 use Drupal\Component\Plugin\Discovery\DiscoveryTrait;
Chris@0 7
Chris@0 8 /**
Chris@0 9 * Allows configuration entities to define plugin definitions.
Chris@0 10 */
Chris@0 11 class ConfigEntityDiscovery implements DiscoveryInterface {
Chris@0 12
Chris@0 13 use DiscoveryTrait;
Chris@0 14
Chris@0 15 /**
Chris@0 16 * Entity type to query.
Chris@0 17 *
Chris@0 18 * @var string
Chris@0 19 */
Chris@0 20 protected $entityType;
Chris@0 21
Chris@0 22 /**
Chris@0 23 * Construct a YamlDiscovery object.
Chris@0 24 *
Chris@0 25 * @param string $entity_type
Chris@0 26 * The entity type to query for.
Chris@0 27 */
Chris@0 28 function __construct($entity_type) {
Chris@0 29 $this->entityType = $entity_type;
Chris@0 30 }
Chris@0 31
Chris@0 32 /**
Chris@0 33 * {@inheritdoc}
Chris@0 34 */
Chris@0 35 public function getDefinitions() {
Chris@0 36 $definition = \Drupal::entityTypeManager()->getDefinition($this->entityType);
Chris@0 37 $prefix = $definition->getConfigPrefix() . '.';
Chris@0 38 $storage = \Drupal::service('config.storage');
Chris@0 39 $query = \Drupal::entityQuery($this->entityType);
Chris@0 40 $ids = $query->execute();
Chris@0 41 $definitions = [];
Chris@0 42 foreach ($ids as $id) {
Chris@0 43 $definitions[$id] = $storage->read($prefix . $id);
Chris@0 44 }
Chris@0 45
Chris@0 46 return $definitions;
Chris@0 47 }
Chris@0 48
Chris@0 49 }