EntityStorageBase
abstract class EntityStorageBase extends EntityHandlerBase implements EntityStorageInterface, EntityHandlerInterface (View source)
A base entity storage class.
Traits
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Provides dependency injection friendly methods for serialization.
Properties
| 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 ModuleHandlerInterface | $moduleHandler | The module handler to invoke hooks on. |
from EntityHandlerBase |
| protected string | $entityTypeId | Entity type ID for this storage. |
|
| protected EntityTypeInterface | $entityType | Information about the entity type. |
|
| protected string | $idKey | Name of the entity's ID field in the entity database table. |
|
| protected string | $uuidKey | Name of entity's UUID database table field, if it supports UUIDs. |
|
| protected string | $langcodeKey | The name of the entity langcode property. |
|
| protected UuidInterface | $uuidService | The UUID service. |
|
| protected MemoryCacheInterface | $memoryCache | The memory cache. |
|
| protected string | $memoryCacheTag | The memory cache cache tag. |
Methods
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.
Constructs an EntityStorageBase instance.
Retrieves the class name used to create the entity.
Warns subclasses not to directly access the deprecated entityClass property.
Warns subclasses not to directly set the deprecated entityClass property.
Gets the entity type ID.
Gets the entity type definition.
Builds the cache ID for the passed in entity ID.
Loads an unchanged entity from the database.
Resets the internal entity cache.
Gets entities from the static cache.
Stores entities in the static entity cache.
Constructs a new entity object, without permanently saving it.
Performs storage-specific creation of entities.
Loads one entity.
Loads one or more entities.
Performs storage-specific loading of entities.
Gathers entities from a 'preload' step.
Attaches data to entities upon loading.
Maps from storage records to entity objects.
Deletes permanently saved entities.
Load entities by their property values.
Determines if the storage contains any data.
Gets an entity query instance.
Gets an aggregated query instance.
Gets the name of the service for the query for this entity storage.
Indexes the given array of entities by their class name and ID.
Details
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}
protected ModuleHandlerInterface
moduleHandler()
Gets the module handler.
$this
setModuleHandler(ModuleHandlerInterface $module_handler)
Sets the module handler for this handler.
__construct(EntityTypeInterface $entity_type, MemoryCacheInterface $memory_cache)
Constructs an EntityStorageBase instance.
string
getEntityClass(string|null $bundle = NULL)
Retrieves the class name used to create the entity.
__get(string $name)
Warns subclasses not to directly access the deprecated entityClass property.
void
__set(string $name, mixed $value)
Warns subclasses not to directly set the deprecated entityClass property.
string
getEntityTypeId()
Gets the entity type ID.
EntityTypeInterface
getEntityType()
Gets the entity type definition.
protected string
buildCacheId(int $id)
Builds the cache ID for the passed in entity ID.
EntityInterface|null
loadUnchanged(mixed $id)
Loads an unchanged entity from the database.
resetCache(array $ids = NULL)
Resets the internal entity cache.
protected EntityInterface[]
getFromStaticCache(array $ids)
Gets entities from the static cache.
protected
setStaticCache(array $entities)
Stores entities in the static entity cache.
protected
invokeHook(string $hook, EntityInterface $entity)
Invokes a hook on behalf of the entity.
EntityInterface
create(array $values = [])
Constructs a new entity object, without permanently saving it.
protected EntityInterface
doCreate(array $values)
Performs storage-specific creation of entities.
EntityInterface|null
load(mixed $id)
Loads one entity.
EntityInterface[]
loadMultiple(array $ids = NULL)
Loads one or more entities.
abstract protected EntityInterface[]
doLoadMultiple(array $ids = NULL)
Performs storage-specific loading of entities.
Override this method to add custom functionality directly after loading. This is always called, while self::postLoad() is only called when there are actual results.
protected EntityInterface[]
preLoad(array $ids = NULL)
Gathers entities from a 'preload' step.
protected
postLoad(array $entities)
Attaches data to entities upon loading.
If there are multiple bundle classes involved, each one gets a sub array with only the entities of the same bundle. If there's only a single bundle, the entity's postLoad() method will get a copy of the original $entities array.
protected EntityInterface[]
mapFromStorageRecords(array $records)
Maps from storage records to entity objects.
abstract protected bool
has(int|string $id, EntityInterface $entity)
Determines if this entity already exists in storage.
delete(array $entities)
Deletes permanently saved entities.
abstract protected
doDelete(EntityInterface[] $entities)
Performs storage-specific entity deletion.
SAVED_NEW
save(EntityInterface $entity)
Saves the entity permanently.
protected int|string
doPreSave(EntityInterface $entity)
Performs presave entity processing.
abstract protected bool|int
doSave(int|string $id, EntityInterface $entity)
Performs storage-specific saving of the entity.
protected
doPostSave(EntityInterface $entity, bool $update)
Performs post save entity processing.
restore(EntityInterface $entity)
Restores a previously saved entity.
Note that the entity is assumed to be in a valid state for the storage, so the restore process does not invoke any hooks, nor does it perform any pre or post-save operations.
protected
buildPropertyQuery(QueryInterface $entity_query, array $values)
Builds an entity query.
EntityInterface[]
loadByProperties(array $values = [])
Load entities by their property values.
bool
hasData()
Determines if the storage contains any data.
QueryInterface
getQuery(string $conjunction = 'AND')
Gets an entity query instance.
QueryAggregateInterface
getAggregateQuery(string $conjunction = 'AND')
Gets an aggregated query instance.
abstract protected string
getQueryServiceName()
Gets the name of the service for the query for this entity storage.
protected array
getEntitiesByClass(array $entities)
Indexes the given array of entities by their class name and ID.