Entity Key-Value Store
Component ID
2870381
Component name
Entity Key-Value Store
Component type
module
Maintenance status
Development status
Component security advisory coverage
not-covered
Downloads
68
Component created
Component changed
Component body
This module provides possibility to save/load additional data for entities in (Drupal-based) key-value storage like SQL, Redis, MongoDB, etc. It can be useful for some highloaded properties like counters.
Features:
- Multiple/single key-value operations
- Possibility to use different backends for different entity key-value stores
- Default values (including default-value callbacks)
- Type hinting/manipulations
- Live-load (preloading key-values on entity load) (optional)
- Live-delete (deletion key-values on entity delete) (optional, enabled by default)
- Drush commands
Usage examples
1. Defining some special counter for node by special hook:
function mymodule_entity_keyvalue_info() {
return [
'node' => [
'keys' => [
'special_counter' => [
'default_value' => 0,
// Possible values: 'any', 'int', 'float', 'string', 'array', 'object'.
'type' => 'int',
],
'key2' => [
// Default value can be callable.
'default_value' => function (NodeInterface $node) {
return $node->getTitle();
},
'type' => 'string',
],
],
],
];
}
2. Updating value:
$node = Node::load(156);
$store = Drupal::service('entity_keyvalue_store_provider')->getEntityStore('node');
// Actually, you can avoid this by setting 'autoload' => TRUE in hook_entity_keyvalue_info.
$values = $store->getValues($node);
$values['special_counter']++;
$store->setValues($node, $values);

