ContentEntity
class ContentEntity extends SourcePluginBase implements ContainerFactoryPluginInterface (View source)
Source plugin to get content entities from the current version of Drupal.
This plugin uses the Entity API to export entity data. If the source entity type has custom field storage fields or computed fields, this class will need to be extended and the new class will need to load/calculate the values for those fields.
Available configuration keys:
- entity_type: The entity type ID of the entities being exported. This is calculated dynamically by the deriver so it is only needed if the deriver is not utilized, i.e., a custom source plugin.
- bundle: (optional) If the entity type is bundleable, only return entities of this bundle.
- include_translations: (optional) Indicates if the entity translations should be included, defaults to TRUE.
- add_revision_id: (optional) Indicates if the revision key is added to the source IDs, defaults to TRUE.
Examples:
This will return the default revision for all nodes, from every bundle and every translation. The revision key is added to the source IDs.
Traits
The entity field definition trait.
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Provides dependency injection friendly methods for serialization.
Provides a trait for the messenger service.
Constants
| DERIVATIVE_SEPARATOR |
A string which is used to separate base plugin IDs from the derivative ID. |
Properties
| protected string | $pluginId | The plugin_id. |
from PluginBase |
| protected array | $pluginDefinition | The plugin implementation definition. |
from PluginBase |
| protected array | $configuration | Configuration information passed into the plugin. |
from PluginBase |
| protected TranslationInterface | $stringTranslation | The string translation service. |
from StringTranslationTrait |
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected MessengerInterface | $messenger | The messenger. |
from MessengerTrait |
| protected ModuleHandlerInterface | $moduleHandler | The module handler service. |
from SourcePluginBase |
| protected MigrationInterface | $migration | The entity migration object. |
from SourcePluginBase |
| protected Row | $currentRow | The current row from the query. |
from SourcePluginBase |
| protected array | $currentSourceIds | The primary key of the current row. |
from SourcePluginBase |
| protected array | $highWaterProperty | Information on the property used as the high-water mark. |
from SourcePluginBase |
| protected KeyValueStoreInterface | $highWaterStorage | The key-value storage for the high-water value. |
from SourcePluginBase |
| protected int | $originalHighWater | The high water mark at the beginning of the import operation. |
from SourcePluginBase |
| protected bool | $cacheCounts | Whether this instance should cache the source count. |
from SourcePluginBase |
| protected string | $cacheKey | Key to use for caching counts. |
from SourcePluginBase |
| protected bool | $skipCount | Whether this instance should not attempt to count the source. |
from SourcePluginBase |
| protected bool | $trackChanges | Flags whether to track changes to incoming data. |
from SourcePluginBase |
| protected bool | $mapRowAdded | Flags whether source plugin will read the map row and add to data row. |
from SourcePluginBase |
| protected CacheBackendInterface | $cache | The backend cache. |
from SourcePluginBase |
| protected MigrateIdMapInterface | $idMap | The migration ID map. |
from SourcePluginBase |
| protected Iterator | $iterator | The iterator to iterate over the source rows. |
from SourcePluginBase |
| protected EntityTypeManagerInterface | $entityTypeManager | The entity type manager. |
|
| protected EntityFieldManagerInterface | $entityFieldManager | The entity field manager. |
|
| protected EntityTypeBundleInfoInterface | $entityTypeBundleInfo | The entity type bundle info service. |
|
| protected EntityTypeInterface | $entityType | The entity type definition. |
|
| protected array | $defaultConfiguration | The plugin's default configuration. |
Methods
Constructs a \Drupal\Component\Plugin\PluginBase object.
Translates a string to the current language or to a given language.
Formats a string containing a count of items.
Returns the number of plurals supported by a given language.
Gets the string translation service.
Initializes the iterator with the source data.
Returns the iterator that will yield the row arrays to be processed.
Gets the source count.
Gets the source count checking if the source is countable or using the iterator_count function.
Get the high water storage object.
Get information on the property used as the high watermark.
Get the name of the field used as the high watermark.
Gets the source module providing the source data.
Gets the field definition from a specific entity base field.
Finds the entity type from configuration or plugin ID.
Creates an instance of the plugin.
Allows class to decide how it will react when it is treated like a string.
Loads and yields entities, one at a time.
Query to retrieve the entities.
Returns available fields on the source.
Defines the source fields uniquely identifying a source row.
Details
__construct(array $configuration, string $plugin_id, mixed $plugin_definition, MigrationInterface $migration, EntityTypeManagerInterface $entity_type_manager, EntityFieldManagerInterface $entity_field_manager, EntityTypeBundleInfoInterface $entity_type_bundle_info)
Constructs a \Drupal\Component\Plugin\PluginBase object.
string
getPluginId()
Gets the plugin_id of the plugin instance.
string
getBaseId()
Gets the base_plugin_id of the plugin instance.
string|null
getDerivativeId()
Gets the derivative_id of the plugin instance.
array
getPluginDefinition()
Gets the definition of the plugin implementation.
bool
isConfigurable()
Determines if the plugin is configurable.
protected TranslatableMarkup
t(string $string, array $args = [], array $options = [])
Translates a string to the current language or to a given language.
See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.
In order for strings to be localized, make them available in one of the ways supported by the
protected
formatPlural($count, $singular, $plural, array $args = [], array $options = [])
Formats a string containing a count of items.
protected
getNumberOfPlurals($langcode = NULL)
Returns the number of plurals supported by a given language.
protected TranslationInterface
getStringTranslation()
Gets the string translation service.
$this
setStringTranslation(TranslationInterface $translation)
Sets the string translation service to use.
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
setMessenger(MessengerInterface $messenger)
Sets the messenger.
MessengerInterface
messenger()
Gets the messenger.
protected Iterator
initializeIterator()
Initializes the iterator with the source data.
protected ModuleHandlerInterface
getModuleHandler()
Gets the module handler.
bool
prepareRow(Row $row)
Adds additional data to the row.
protected Iterator
getIterator()
Returns the iterator that will yield the row arrays to be processed.
current()
{@inheritdoc}
key()
Gets the iterator key.
Implementation of \Iterator::key() - called when entering a loop iteration, returning the key of the current row. It must be a scalar - we will serialize to fulfill the requirement, but using getCurrentIds() is preferable.
valid()
Checks whether the iterator is currently valid.
Implementation of \Iterator::valid() - called at the top of the loop, returning TRUE to process the loop and FALSE to terminate it.
rewind()
Rewinds the iterator.
Implementation of \Iterator::rewind() - subclasses of SourcePluginBase should implement initializeIterator() to do any class-specific setup for iterating source records.
next()
{@inheritdoc}
protected
fetchNextRow()
Position the iterator to the following row.
protected bool
aboveHighWater(Row $row)
Check if the incoming data is newer than what we've previously imported.
protected bool
rowChanged(Row $row)
Checks if the incoming row has changed since our last import.
getCurrentIds()
Gets the currentSourceIds data member.
int
count(bool $refresh = FALSE)
Gets the source count.
Return a count of available source records, from the cache if appropriate. Returns MigrateSourceInterface::NOT_COUNTABLE if the source is not countable.
protected CacheBackendInterface
getCache()
Gets the cache object.
protected int
doCount()
Gets the source count checking if the source is countable or using the iterator_count function.
protected KeyValueStoreInterface
getHighWaterStorage()
Get the high water storage object.
protected int|null
getHighWater()
The current value of the high water mark.
The high water mark defines a timestamp stating the time the import was last run. If the mark is set, only content with a higher timestamp will be imported.
protected
saveHighWater(int $high_water)
Save the new high water mark.
protected array
getHighWaterProperty()
Get information on the property used as the high watermark.
Array of 'name' & (optional) db 'alias' properties used for high watermark.
protected string|null
getHighWaterField()
Get the name of the field used as the high watermark.
The name of the field qualified with an alias if available.
preRollback(MigrateRollbackEvent $event)
Performs pre-rollback tasks.
postRollback(MigrateRollbackEvent $event)
Performs post-rollback tasks.
string|null
getSourceModule()
Gets the source module providing the source data.
protected array
getDefinitionFromEntity(string $key)
Gets the field definition from a specific entity base field.
The method takes the field ID as an argument and returns the field storage definition to be used in getIds() by querying the destination entity base field definition.
static protected string
getEntityTypeId(string $plugin_id)
Finds the entity type from configuration or plugin ID.
static ContainerFactoryPluginInterface
create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition, MigrationInterface $migration = NULL)
Creates an instance of the plugin.
__toString()
Allows class to decide how it will react when it is treated like a string.
protected Generator
yieldEntities(array $ids)
Loads and yields entities, one at a time.
protected array
toArray(ContentEntityInterface $entity)
Converts an entity to an array.
Makes all IDs into flat values. All other values are returned as per $entity->toArray(), which is a nested array.
QueryInterface
query()
Query to retrieve the entities.
array
fields()
Returns available fields on the source.
array[]
getIds()
Defines the source fields uniquely identifying a source row.
None of these fields should contain a NULL value. If necessary, use prepareRow() or hook_migrate_prepare_row() to rewrite NULL values to appropriate empty values (such as '' or 0).