class ContentEntityStorage in MongoDB 8
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityStorageBase implements EntityHandlerInterface, EntityStorageInterface
- class \Drupal\Core\Entity\ContentEntityStorageBase implements ContentEntityStorageInterface, DynamicallyFieldableEntityStorageInterface uses DeprecatedServicePropertyTrait
- class \Drupal\mongodb\Entity\ContentEntityStorage
- class \Drupal\Core\Entity\ContentEntityStorageBase implements ContentEntityStorageInterface, DynamicallyFieldableEntityStorageInterface uses DeprecatedServicePropertyTrait
- class \Drupal\Core\Entity\EntityStorageBase implements EntityHandlerInterface, EntityStorageInterface
Expanded class hierarchy of ContentEntityStorage
7 files declare their use of ContentEntityStorage
- FeedStorage.php in mongodb_aggregator/
src/ Entity/ FeedStorage.php - Contains Drupal\mongodb\Entity\FeedStorageController.
- ItemStorage.php in mongodb_aggregator/
src/ Entity/ ItemStorage.php - Contains \Drupal\aggregator\ItemStorage.
- MongodbCommentStorage.php in mongodb_comment/
src/ MongodbCommentStorage.php - Contains \Drupal\mongodb_comment\MongodbCommentStorage.
- MongodbFileStorage.php in mongodb_file/
src/ MongodbFileStorage.php - Contains \Drupal\mongodb_file\MongodbFileStorage.
- MongodbNodeStorage.php in mongodb_node/
src/ MongodbNodeStorage.php - Contains \Drupal\node\MongodbNodeStorage.
File
- src/
Entity/ ContentEntityStorage.php, line 23 - Contains Drupal\mongodb\Entity\ContentEntityStorage.
Namespace
Drupal\mongodb\EntityView source
class ContentEntityStorage extends ContentEntityStorageBase {
/**
* @var \Drupal\mongoDb\MongoCollectionFactory $mongo
*/
protected $mongo;
/**
* @var EntityManagerInterface
*/
protected $entityManager;
/**
* Constructs a DatabaseStorageController object.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type definition.
* @param \Drupal\Core\Database\Connection $database
* The database connection to be used.
*/
public function __construct(EntityTypeInterface $entity_type, MongoCollectionFactory $mongo, EntityManagerInterface $entity_manager) {
parent::__construct($entity_type);
$this->mongo = $mongo;
$this->entityManager = $entity_manager;
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container
->get('mongo'), $container
->get('entity.manager'));
}
/**
* Load a specific entity revision.
*
* @param int $revision_id
* The revision id.
*
* @return \Drupal\Core\Entity\EntityInterface|false
* The specified entity revision or FALSE if not found.
*/
public function loadRevision($revision_id) {
$revisions = $this
->loadFromMongo('entity_revision', [
'_id' => (int) $revision_id,
]);
return isset($revisions[$revision_id]) ? $revisions[$revision_id] : FALSE;
}
/**
* Loads entity records from a MongoDB collections.
*
* @param string $prefix
* @param array $find
* @return array
*/
protected function loadFromMongo($prefix, array $find) {
$collection = $this->mongo
->get($prefix . '.' . $this->entityType
->id());
$return = array();
$langcode_key = $this->entityType
->getKey('langcode');
$default_langcode_key = $this->entityType
->getKey('default_langcode');
$revision_key = $this->entityType
->getKey('revision');
$translatable = $this->entityType
->isTranslatable();
foreach ($collection
->find($find) as $record) {
$data = array();
$definitions = $this->entityManager
->getFieldDefinitions($this->entityTypeId, $record['bundle']);
$this
->mongoToEntityData($data, $record, $definitions, $translatable, $default_langcode_key, $langcode_key);
if ($prefix == 'entity_revision') {
// Add non-revisionable data from the current revision.
$entity_record = $this->mongo
->get('entity.' . $this->entityType
->id())
->findOne([
'_id' => $record['entity_id'],
]);
$definitions = array_filter($this->entityManager
->getFieldStorageDefinitions($this->entityTypeId), function (FieldStorageDefinitionInterface $definition) use ($revision_key) {
return !$definition
->isRevisionable() && $definition
->getName() != $revision_key;
});
$this
->mongoToEntityData($data, $entity_record, $definitions, $translatable, $default_langcode_key, $langcode_key);
if ($entity_record['values'][0][$this->entityType
->getKey('revision')][0]['value'] != $record['_id']) {
$data['isDefaultRevision'][LanguageInterface::LANGCODE_DEFAULT] = FALSE;
}
}
$return[$record['_id']] = new $this->entityClass($data, $this->entityTypeId, $record['bundle'], $record['translations']);
}
return $return;
}
/**
* @param array $data
* The data to be passed to the entity constructor.
* @param array $record
* The record as read from MongoDB.
* @param array $definitions
* Field definition array.
* @param bool $translatable
* Whether the entity is translatable.
* @param string $default_langcode_key
* The default_langcode key, typically default_langcode.
* @param $langcode_key
* The langcode key, typucally langcode.
*/
protected function mongoToEntityData(array &$data, array $record, array $definitions, $translatable, $default_langcode_key, $langcode_key) {
foreach ($record['values'] as $translation) {
foreach ($definitions as $field_name => $definition) {
if (isset($translation[$field_name])) {
$index = $translatable && !$translation[$default_langcode_key][0]['value'] ? $translation[$langcode_key][0]['value'] : LanguageInterface::LANGCODE_DEFAULT;
$data[$field_name][$index] = $translation[$field_name];
}
}
}
}
/**
* Delete a specific entity revision.
*
* A revision can only be deleted if it's not the currently active one.
*
* @param int $revision_id
* The revision id.
*/
public function deleteRevision($revision_id) {
$this->mongo
->get('entity_revision.' . $this->entityType
->id())
->remove(array(
'_id' => $revision_id,
));
}
/**
* Deletes permanently saved entities.
*
* @param array $entities
* An array of entity objects to delete.
*
* @throws \Drupal\Core\Entity\EntityStorageException
* In case of failures, an exception is thrown.
*/
public function doDelete($entities) {
if (!$entities) {
// If no IDs or invalid IDs were passed, do nothing.
return;
}
$ids = array(
'$in' => array_keys($entities),
);
$this->mongo
->get('entity.' . $this->entityType
->id())
->remove(array(
'_id' => $ids,
));
$this->mongo
->get('entity_revision.' . $this->entityType
->id())
->remove(array(
'entity_id' => $ids,
));
}
/**
* {@inheritdoc}
*/
protected function doSave($id, EntityInterface $entity) {
/** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
$id = $entity
->id();
$is_new = FALSE;
if ($entity
->isNew() || $id === NULL || $id === '') {
$is_new = TRUE;
if ($id === NULL || $id === '') {
$entity
->get($this->entityType
->getKey('id'))->value = $this
->nextId('entity', $id);
}
}
if ($this->entityType
->isRevisionable()) {
$revision_key = $this->entityType
->getKey('revision');
if ($entity
->isNewRevision() && !$entity
->getRevisionId()) {
$entity
->get($revision_key)->value = $this
->nextId('entity_revision');
}
}
$this
->invokeFieldMethod($is_new ? 'insert' : 'update', $entity);
$data = $this
->getDataToSave($entity);
if ($entity
->isDefaultRevision()) {
$criteria['_id'] = $entity
->id();
if ($this->entityType
->isRevisionable()) {
$data['revision_id'] = $entity
->get($revision_key)->value;
}
$collection = $this
->mongoCollection($entity, 'entity');
$collection
->update($criteria, $criteria + $data, [
'upsert' => TRUE,
]);
$return = $collection->db
->lastError();
}
if ($this->entityType
->isRevisionable()) {
$criteria['_id'] = $entity
->getRevisionId();
$criteria['entity_id'] = $entity
->id();
$collection = $this
->mongoCollection($entity, 'entity_revision');
$collection
->update($criteria, $criteria + $data, [
'upsert' => TRUE,
]);
$entity
->setNewRevision(FALSE);
if (!isset($return)) {
$return = $collection->db
->lastError();
}
}
if (!$is_new) {
$this
->invokeTranslationHooks($entity);
}
if (isset($collection) && empty($return['err'])) {
return $return['updatedExisting'] ? SAVED_UPDATED : SAVED_NEW;
}
return FALSE;
}
/**
* @param $prefix
* @return int
*/
protected function nextId($prefix, $existing_id = 0) {
return $this->mongo
->nextId("{$prefix}.{$this->entityTypeId}", (int) $existing_id);
}
/**
* Collect the translations of an entity for saving.
*
* @param ContentEntityInterface $entity
* @return array
*/
protected function getDataToSave(ContentEntityInterface $entity) {
$default_langcode = $entity
->getUntranslated()
->language()
->getId();
$values = array();
$langcodes = [];
$languages = $entity
->getTranslationLanguages();
foreach ($languages as $langcode => $language) {
$translation = $entity
->getTranslation($langcode);
$translated_values = [];
$langcodes[] = $langcode;
/** @var \Drupal\Core\Field\FieldItemListInterface $items */
foreach ($translation as $field_name => $items) {
$field_storage_definition = $items
->getFieldDefinition()
->getFieldStorageDefinition();
$columns = $field_storage_definition
->getSchema()['columns'];
$cardinality = $field_storage_definition
->getCardinality();
/** @var \Drupal\Core\Field\FieldItemListInterface $items */
if (!$items
->isEmpty()) {
foreach ($items as $delta => $item) {
if ($delta == $cardinality) {
break;
}
/** @var \Drupal\Core\Field\FieldItemInterface $item */
foreach ($item
->toArray() as $column => $value) {
if (isset($columns[$column])) {
$translated_values[$field_name][$delta][$column] = MongoCollectionFactory::castValue($columns[$column]['type'], $value);
}
}
}
}
}
if ($default_langcode == $langcode) {
array_unshift($values, $this
->denormalize($translated_values));
}
else {
$values[] = $this
->denormalize($translated_values);
}
}
$data = array(
'bundle' => $entity
->bundle(),
'translations' => $langcodes,
'values' => $values,
);
$this
->entityToData($entity, $data);
return $data;
}
/**
* Add extra values from the entity to the data to be saved.
*
* @param ContentEntityInterface $entity
* @param array $data
* Three keys:
* - bundle: the entity bundle.
* - translations: the list of entity languages
* - values: the actual entity values
*/
protected function entityToData(ContentEntityInterface $entity, &$data) {
}
/**
* Gets the name of the service for the query for this entity storage.
*
* @return string
* The name of the service for the query for this entity storage.
*/
public function getQueryServicename() {
return 'entity.query.mongodb';
}
/**
* @param array $translated_values
* @return array
*/
protected function denormalize(array $translated_values) {
return $translated_values;
}
/**
* {@inheritdoc}
*/
protected function doLoadFieldItems($entities, $age) {
}
/**
* {@inheritdoc}
*/
protected function doSaveFieldItems(EntityInterface $entity, $update) {
}
/**
* {@inheritdoc}
*/
protected function doDeleteFieldItems(EntityInterface $entity) {
}
/**
* {@inheritdoc}
*/
protected function doDeleteFieldItemsRevision(EntityInterface $entity) {
}
/**
* {@inheritdoc}
*/
protected function readFieldItemsToPurge(FieldDefinitionInterface $field_definition, $batch_size) {
// TODO: Implement readFieldItemsToPurge() method.
return [];
}
/**
* {@inheritdoc}
*/
protected function purgeFieldItems(ContentEntityInterface $entity, FieldDefinitionInterface $field_definition) {
// TODO: Implement purgeFieldItems() method.
}
/**
* 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.
*
* @param array|null $ids
* (optional) An array of entity IDs, or NULL to load all entities.
*
* @return \Drupal\Core\Entity\EntityInterface[]
* Associative array of entities, keyed on the entity ID.
*/
protected function doLoadMultiple(array $ids = NULL) {
$find = array();
if ($ids !== NULL) {
$find['_id']['$in'] = array_values(array_map('intval', $ids));
}
return $this
->loadFromMongo('entity', $find);
}
/**
* Determines if this entity already exists in storage.
*
* @param int|string $id
* The original entity ID.
* @param \Drupal\Core\Entity\EntityInterface $entity
* The entity being saved.
*
* @return bool
*/
protected function has($id, EntityInterface $entity) {
return !$entity
->isNew();
}
/**
* Determines the number of entities with values for a given field.
*
* @param \Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition
* The field for which to count data records.
* @param bool $as_bool
* (Optional) Optimises the query for checking whether there are any records
* or not. Defaults to FALSE.
*
* @return bool|int
* The number of entities. If $as_bool parameter is TRUE then the
* value will either be TRUE or FALSE.
*
* @see \Drupal\Core\Entity\FieldableEntityStorageInterface::purgeFieldData()
*/
public function countFieldData($storage_definition, $as_bool = FALSE) {
// TODO: Implement countFieldData() method.
}
/**
* @param EntityInterface $entity
* @return \MongoCollection
*/
protected function mongoCollection(ContentEntityInterface $entity, $prefix) {
return $this->mongo
->get($prefix . '.' . $this->entityTypeId);
}
/**
* {@inheritdoc}
*/
protected function buildPropertyQuery(QueryInterface $entity_query, array $values) {
$default_langcode_key = $this->entityType
->getKey('default_langcode');
if ($default_langcode_key) {
if (!array_key_exists($default_langcode_key, $values)) {
if ($this->entityType
->isTranslatable()) {
$values[$default_langcode_key] = 1;
}
}
elseif ($values[$default_langcode_key] === NULL) {
unset($values[$default_langcode_key]);
}
}
parent::buildPropertyQuery($entity_query, $values);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ContentEntityStorage:: |
protected | property | ||
ContentEntityStorage:: |
protected | property | ||
ContentEntityStorage:: |
protected | function |
Builds an entity query. Overrides EntityStorageBase:: |
|
ContentEntityStorage:: |
public | function |
Determines the number of entities with values for a given field. Overrides FieldableEntityStorageInterface:: |
|
ContentEntityStorage:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
public | function |
Delete a specific entity revision. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function | 1 | |
ContentEntityStorage:: |
public | function |
Deletes permanently saved entities. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function |
Deletes entity field values from the storage. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function | ||
ContentEntityStorage:: |
protected | function | ||
ContentEntityStorage:: |
protected | function |
Performs storage-specific loading of entities. Overrides EntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function |
Performs storage-specific saving of the entity. Overrides ContentEntityStorageBase:: |
1 |
ContentEntityStorage:: |
protected | function |
Writes entity field values to the storage. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function | Add extra values from the entity to the data to be saved. | 1 |
ContentEntityStorage:: |
protected | function | Collect the translations of an entity for saving. | |
ContentEntityStorage:: |
public | function | Gets the name of the service for the query for this entity storage. | |
ContentEntityStorage:: |
protected | function |
Determines if this entity already exists in storage. Overrides EntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function | Loads entity records from a MongoDB collections. | |
ContentEntityStorage:: |
public | function |
Load a specific entity revision. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function | ||
ContentEntityStorage:: |
protected | function | ||
ContentEntityStorage:: |
protected | function | ||
ContentEntityStorage:: |
protected | function |
Removes field items from storage per entity during purge. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
protected | function |
Reads values to be purged for a single field. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorage:: |
public | function |
Constructs a DatabaseStorageController object. Overrides ContentEntityStorageBase:: |
|
ContentEntityStorageBase:: |
protected | property | The entity bundle key. | |
ContentEntityStorageBase:: |
protected | property | Cache backend. | |
ContentEntityStorageBase:: |
protected | property | ||
ContentEntityStorageBase:: |
protected | property | The entity field manager service. | |
ContentEntityStorageBase:: |
protected | property | The entity bundle info. | |
ContentEntityStorageBase:: |
protected | property | Stores the latest revision IDs for entities. | |
ContentEntityStorageBase:: |
protected | function | Ensures integer entity key values are valid. | |
ContentEntityStorageBase:: |
public | function |
Creates a new revision starting off from the specified entity object. Overrides TranslatableRevisionableStorageInterface:: |
|
ContentEntityStorageBase:: |
public | function |
Constructs a new entity translation object, without permanently saving it. Overrides TranslatableStorageInterface:: |
|
ContentEntityStorageBase:: |
public | function |
Creates an entity with sample field values. Overrides ContentEntityStorageInterface:: |
1 |
ContentEntityStorageBase:: |
protected | function |
Performs storage-specific creation of entities. Overrides EntityStorageBase:: |
|
ContentEntityStorageBase:: |
abstract protected | function | Deletes field values of an entity revision from the storage. | 2 |
ContentEntityStorageBase:: |
protected | function | Actually loads revision field item values from the storage. | 2 |
ContentEntityStorageBase:: |
abstract protected | function | Actually loads revision field item values from the storage. | 2 |
ContentEntityStorageBase:: |
protected | function |
Performs post save entity processing. Overrides EntityStorageBase:: |
|
ContentEntityStorageBase:: |
protected | function |
Performs presave entity processing. Overrides EntityStorageBase:: |
|
ContentEntityStorageBase:: |
public | function |
Performs final cleanup after all data of a field has been purged. Overrides FieldableEntityStorageInterface:: |
1 |
ContentEntityStorageBase:: |
protected | function | Gets entities from the persistent cache backend. | |
ContentEntityStorageBase:: |
public | function |
Returns the latest revision identifier for an entity. Overrides RevisionableStorageInterface:: |
|
ContentEntityStorageBase:: |
public | function |
Returns the latest revision affecting the specified translation. Overrides TranslatableRevisionableStorageInterface:: |
|
ContentEntityStorageBase:: |
protected | function | Returns an array of field names to skip when merging revision translations. | |
ContentEntityStorageBase:: |
protected | function | Checks whether the field values changed compared to the original entity. | |
ContentEntityStorageBase:: |
protected | function | Initializes field values. | |
ContentEntityStorageBase:: |
protected | function | Invokes a method on the Field objects within an entity. | |
ContentEntityStorageBase:: |
protected | function | Invokes the post save method on the Field objects within an entity. | |
ContentEntityStorageBase:: |
protected | function |
Invokes a hook on behalf of the entity. Overrides EntityStorageBase:: |
1 |
ContentEntityStorageBase:: |
protected | function | Invokes hook_entity_storage_load(). | |
ContentEntityStorageBase:: |
protected | function | Checks translation statuses and invoke the related hooks if needed. | |
ContentEntityStorageBase:: |
protected | function | Checks whether any entity revision is translated. | |
ContentEntityStorageBase:: |
protected | function | Checks whether any stored entity revision is translated. | |
ContentEntityStorageBase:: |
public | function |
Loads multiple entity revisions. Overrides RevisionableStorageInterface:: |
1 |
ContentEntityStorageBase:: |
public | function |
Loads an unchanged entity from the database. Overrides EntityStorageBase:: |
|
ContentEntityStorageBase:: |
public | function |
Reacts to the creation of a field. Overrides FieldDefinitionListenerInterface:: |
|
ContentEntityStorageBase:: |
public | function |
Reacts to the deletion of a field. Overrides FieldDefinitionListenerInterface:: |
1 |
ContentEntityStorageBase:: |
public | function |
Reacts to the update of a field. Overrides FieldDefinitionListenerInterface:: |
|
ContentEntityStorageBase:: |
public | function |
Reacts to the creation of a field storage definition. Overrides FieldStorageDefinitionListenerInterface:: |
1 |
ContentEntityStorageBase:: |
public | function |
Reacts to the deletion of a field storage definition. Overrides FieldStorageDefinitionListenerInterface:: |
1 |
ContentEntityStorageBase:: |
public | function |
Reacts to the update of a field storage definition. Overrides FieldStorageDefinitionListenerInterface:: |
1 |
ContentEntityStorageBase:: |
protected | function | Populates the affected flag for all the revision translations. | |
ContentEntityStorageBase:: |
protected | function |
Gathers entities from a 'preload' step. Overrides EntityStorageBase:: |
|
ContentEntityStorageBase:: |
public | function |
Purges a batch of field data. Overrides FieldableEntityStorageInterface:: |
|
ContentEntityStorageBase:: |
public | function |
Resets the internal, static entity cache. Overrides EntityStorageBase:: |
1 |
ContentEntityStorageBase:: |
protected | function | Stores entities in the persistent cache backend. | |
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DeprecatedServicePropertyTrait:: |
public | function | Allows to access deprecated/removed properties. | |
EntityHandlerBase:: |
protected | property | The module handler to invoke hooks on. | 2 |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityStorageBase:: |
protected | property | Name of the entity class. | |
EntityStorageBase:: |
protected | property | Information about the entity type. | |
EntityStorageBase:: |
protected | property | Entity type ID for this storage. | |
EntityStorageBase:: |
protected | property | Name of the entity's ID field in the entity database table. | |
EntityStorageBase:: |
protected | property | The name of the entity langcode property. | 1 |
EntityStorageBase:: |
protected | property | The memory cache. | |
EntityStorageBase:: |
protected | property | The memory cache cache tag. | |
EntityStorageBase:: |
protected | property | Name of entity's UUID database table field, if it supports UUIDs. | 1 |
EntityStorageBase:: |
protected | property | The UUID service. | 1 |
EntityStorageBase:: |
protected | function | Builds the cache ID for the passed in entity ID. | 1 |
EntityStorageBase:: |
public | function |
Constructs a new entity object, without permanently saving it. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
public | function |
Deletes permanently saved entities. Overrides EntityStorageInterface:: |
2 |
EntityStorageBase:: |
public | function |
Gets an aggregated query instance. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
public | function |
Gets the entity type definition. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
public | function |
Gets the entity type ID. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
protected | function | Gets entities from the static cache. | |
EntityStorageBase:: |
public | function |
Gets an entity query instance. Overrides EntityStorageInterface:: |
|
EntityStorageBase:: |
abstract protected | function | Gets the name of the service for the query for this entity storage. | 4 |
EntityStorageBase:: |
public | function |
Determines if the storage contains any data. Overrides EntityStorageInterface:: |
3 |
EntityStorageBase:: |
public | function |
Loads one entity. Overrides EntityStorageInterface:: |
2 |
EntityStorageBase:: |
public | function |
Load entities by their property values. Overrides EntityStorageInterface:: |
3 |
EntityStorageBase:: |
public | function |
Loads one or more entities. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
protected | function | Maps from storage records to entity objects. | 4 |
EntityStorageBase:: |
protected | function | Attaches data to entities upon loading. | |
EntityStorageBase:: |
public | function |
Restores a previously saved entity. Overrides EntityStorageInterface:: |
1 |
EntityStorageBase:: |
public | function |
Saves the entity permanently. Overrides EntityStorageInterface:: |
4 |
EntityStorageBase:: |
protected | function | Stores entities in the static entity cache. | |
EntityStorageInterface:: |
constant | Load the most recent version of an entity's field data. | ||
EntityStorageInterface:: |
constant | Load the version of an entity's field data specified in the entity. | ||
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |