class Key in Key 8
Defines the Key entity.
Plugin annotation
@ConfigEntityType(
id = "key",
label = @Translation("Key"),
module = "key",
handlers = {
"list_builder" = "Drupal\key\Controller\KeyListBuilder",
"form" = {
"add" = "Drupal\key\Form\KeyAddForm",
"edit" = "Drupal\key\Form\KeyEditForm",
"delete" = "Drupal\key\Form\KeyDeleteForm"
}
},
config_prefix = "key",
admin_permission = "administer keys",
entity_keys = {
"id" = "id",
"label" = "label"
},
links = {
"add-form" = "/admin/config/system/keys/add",
"edit-form" = "/admin/config/system/keys/manage/{key}",
"delete-form" = "/admin/config/system/keys/manage/{key}/delete",
"collection" = "/admin/config/system/keys"
},
config_export = {
"id",
"label",
"description",
"key_type",
"key_type_settings",
"key_provider",
"key_provider_settings",
"key_input",
"key_input_settings"
}
)
Hierarchy
- class \Drupal\Core\Entity\EntityBase implements EntityInterface uses RefinableCacheableDependencyTrait, DependencySerializationTrait
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
- class \Drupal\key\Entity\Key implements EntityWithPluginCollectionInterface, KeyInterface
- class \Drupal\Core\Config\Entity\ConfigEntityBase implements ConfigEntityInterface uses SynchronizableEntityTrait, PluginDependencyTrait
Expanded class hierarchy of Key
4 files declare their use of Key
- KeyEntityTest.php in tests/
src/ Unit/ Entity/ KeyEntityTest.php - KeyFormBase.php in src/
Form/ KeyFormBase.php - KeyMultiValueTest.php in tests/
src/ Kernel/ KeyMultiValueTest.php - KeyTestTrait.php in tests/
src/ Functional/ KeyTestTrait.php
5 string references to 'Key'
- key.info.yml in ./
key.info.yml - key.info.yml
- key.schema.yml in config/
schema/ key.schema.yml - config/schema/key.schema.yml
- KeyConfigOverrideAddForm::buildForm in src/
Form/ KeyConfigOverrideAddForm.php - Form constructor.
- KeyConfigOverrideListBuilder::buildHeader in src/
Controller/ KeyConfigOverrideListBuilder.php - Builds the header row for the entity listing.
- KeyListBuilder::buildHeader in src/
Controller/ KeyListBuilder.php - Builds the header row for the entity listing.
File
- src/
Entity/ Key.php, line 53
Namespace
Drupal\key\EntityView source
class Key extends ConfigEntityBase implements KeyInterface, EntityWithPluginCollectionInterface {
/**
* The key ID.
*
* @var string
*/
protected $id;
/**
* The key label.
*
* @var string
*/
protected $label;
/**
* The key description.
*
* @var string
*/
protected $description = '';
/**
* The types of plugins used by a the key entity.
*
* @var array
*/
protected $pluginTypes = [
'key_type',
'key_provider',
'key_input',
];
/**
* The key type plugin id.
*
* @var string
*/
protected $key_type = 'authentication';
/**
* The key provider plugin id.
*
* @var string
*/
protected $key_provider = 'config';
/**
* The key input plugin id.
*
* @var string
*/
protected $key_input = 'none';
/**
* The key type plugin settings.
*
* @var array
*/
protected $key_type_settings = [];
/**
* The key provider plugin settings.
*
* @var array
*/
protected $key_provider_settings = [];
/**
* The key input plugin settings.
*
* @var array
*/
protected $key_input_settings = [];
/**
* The key value.
*
* @var string|null
*/
protected $keyValue = NULL;
/**
* The plugin collections, indexed by plugin type.
*
* @var \Drupal\key\Plugin\KeyPluginCollection[]
*/
protected $pluginCollections;
/**
* {@inheritdoc}
*/
public function getDescription() {
return $this->description;
}
/**
* Return the list of plugin types supported by key entities.
*
* @return array
* The list of plugin types.
*/
public function getPluginTypes() {
return $this->pluginTypes;
}
/**
* {@inheritdoc}
*/
public function getPlugins() {
$plugins = [];
foreach ($this->pluginTypes as $type) {
$plugins[$type] = $this
->getPlugin($type);
}
return $plugins;
}
/**
* {@inheritdoc}
*/
public function getPlugin($type) {
return $this
->getPluginCollection($type)
->get($this->{$type});
}
/**
* {@inheritdoc}
*/
public function setPlugin($type, $id) {
$this->{$type} = $id;
$this
->getPluginCollection($type)
->addInstanceId($id);
}
/**
* Returns a list of plugins, for use in forms.
*
* @param string $type
* The plugin type to use.
*
* @return array
* The list of plugins, indexed by ID.
*/
public function getPluginsAsOptions($type) {
$manager = \Drupal::service("plugin.manager.key.{$type}");
$options = [];
foreach ($manager
->getDefinitions() as $id => $definition) {
$options[$id] = $definition['label'];
}
return $options;
}
/**
* {@inheritdoc}
*/
public function getKeyType() {
return $this
->getPlugin('key_type');
}
/**
* {@inheritdoc}
*/
public function getKeyProvider() {
return $this
->getPlugin('key_provider');
}
/**
* {@inheritdoc}
*/
public function getKeyInput() {
return $this
->getPlugin('key_input');
}
/**
* Create a plugin collection of the requested plugin type.
*
* @param string $type
* The plugin type.
*
* @return \Drupal\key\Plugin\KeyPluginCollection
* The plugin collection.
*/
public function getPluginCollection($type) {
if (!isset($this->pluginCollections[$type . '_settings'])) {
$this->pluginCollections[$type . '_settings'] = new KeyPluginCollection(\Drupal::service("plugin.manager.key.{$type}"), $this
->get($type), $this
->get($type . '_settings'));
}
return $this->pluginCollections[$type . '_settings'];
}
/**
* {@inheritdoc}
*/
public function getPluginCollections() {
$plugin_collections = [];
foreach ($this->pluginTypes as $type) {
$plugin_collections[$type . '_settings'] = $this
->getPluginCollection($type);
}
return $plugin_collections;
}
/**
* {@inheritdoc}
*/
public function getKeyValue($reset = FALSE) {
$key_id = $this
->id();
$key_values =& drupal_static(__FUNCTION__);
// If the key value has not already been retrieved during this page
// request or if the static variable storage needs to be reset for
// this key, retrieve the value using the key provider.
if (!isset($key_values[$key_id]) || $reset) {
$key_values[$key_id] = $this
->getKeyProvider()
->getKeyValue($this);
}
return $key_values[$key_id];
}
/**
* {@inheritdoc}
*/
public function getKeyValues($reset = FALSE) {
$value = $this
->getKeyValue($reset);
$key_type = $this
->getKeyType();
if ($key_type
->getPluginDefinition()['multivalue']['enabled']) {
$values = $key_type
->unserialize($value);
}
else {
$values = (array) $value;
}
return $values;
}
/**
* {@inheritdoc}
*/
public function setKeyValue($key_value) {
$key_type = $this
->getKeyType();
if ($key_type
->getPluginDefinition()['multivalue']['enabled'] && is_array($key_value)) {
$key_value = $key_type
->serialize($key_value);
}
$this->keyValue = $key_value;
}
/**
* {@inheritdoc}
*/
public function deleteKeyValue() {
if ($this
->getKeyProvider() instanceof KeyProviderSettableValueInterface) {
return $this
->getKeyProvider()
->deleteKeyValue($this);
}
else {
return FALSE;
}
}
/**
* {@inheritdoc}
*/
public function preSave(EntityStorageInterface $storage) {
// If the key provider supports setting a key value.
if ($this
->getKeyProvider() instanceof KeyProviderSettableValueInterface && isset($this->keyValue)) {
$this
->getKeyProvider()
->setKeyValue($this, $this->keyValue);
}
else {
// If a key value was defined, throw an exception.
if (isset($this->keyValue)) {
throw new KeyValueNotSetException('The selected key provider does not support setting a key value.');
}
}
parent::preSave($storage);
}
/**
* {@inheritdoc}
*/
public function postSave(EntityStorageInterface $storage, $update = TRUE) {
// Allow the key provider to perform post-save actions.
$this
->getKeyProvider()
->postSave($this, $storage, $update);
// If an original key exists.
if (isset($this->original)) {
/* @var $original \Drupal\key\Entity\Key */
$original = $this->original;
// If the original key's provider allows setting a key value and
// the plugin ID is different from the one that was just saved with
// the entity.
if ($original
->getKeyProvider() instanceof KeyProviderSettableValueInterface && $original
->getKeyProvider()
->getPluginId() != $this
->getKeyProvider()
->getPluginId()) {
// Allow the original key's provider to delete the key value.
$original
->deleteKeyValue();
}
}
parent::postSave($storage, $update);
}
/**
* {@inheritdoc}
*/
public static function postDelete(EntityStorageInterface $storage, array $entities) {
foreach ($entities as $key) {
/* @var $key \Drupal\key\Entity\Key */
// Give the key provider plugin the opportunity to delete the key value.
if ($key
->getKeyProvider() instanceof KeyProviderSettableValueInterface) {
$key
->deleteKeyValue();
}
}
parent::postDelete($storage, $entities);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
CacheableDependencyTrait:: |
protected | property | Cache contexts. | |
CacheableDependencyTrait:: |
protected | property | Cache max-age. | |
CacheableDependencyTrait:: |
protected | property | Cache tags. | |
CacheableDependencyTrait:: |
protected | function | Sets cacheability; useful for value object constructors. | |
ConfigEntityBase:: |
private | property | Whether the config is being deleted by the uninstall process. | |
ConfigEntityBase:: |
protected | property | The language code of the entity's default language. | |
ConfigEntityBase:: |
protected | property | The original ID of the configuration entity. | |
ConfigEntityBase:: |
protected | property | The enabled/disabled status of the configuration entity. | 4 |
ConfigEntityBase:: |
protected | property | Third party entity settings. | |
ConfigEntityBase:: |
protected | property | Trust supplied data and not use configuration schema on save. | |
ConfigEntityBase:: |
protected | property | The UUID for this entity. | |
ConfigEntityBase:: |
protected | property | Information maintained by Drupal core about configuration. | |
ConfigEntityBase:: |
protected | function | Overrides \Drupal\Core\Entity\DependencyTrait:addDependency(). | |
ConfigEntityBase:: |
public | function |
Calculates dependencies and stores them in the dependency property. Overrides ConfigEntityInterface:: |
13 |
ConfigEntityBase:: |
public | function |
Creates a duplicate of the entity. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Disables the configuration entity. Overrides ConfigEntityInterface:: |
1 |
ConfigEntityBase:: |
public | function |
Enables the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Returns the cache tags that should be used to invalidate caches. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Gets the configuration dependency name. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected static | function | Gets the configuration manager. | |
ConfigEntityBase:: |
public | function |
Gets the configuration target identifier for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the configuration dependencies. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the list of third parties that store information. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets all third-party settings of a given module. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
protected | function | Gets the typed config manager. | |
ConfigEntityBase:: |
public | function |
Gets whether on not the data is trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
protected static | function |
Override to never invalidate the individual entities' cache tags; the
config system already invalidates them. Overrides EntityBase:: |
|
ConfigEntityBase:: |
protected | function |
Override to never invalidate the entity's cache tag; the config system
already invalidates it. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Checks whether this entity is installable. Overrides ConfigEntityInterface:: |
2 |
ConfigEntityBase:: |
public | function |
Overrides Entity::isNew(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Returns whether this entity is being changed during the uninstall process. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Deprecated way of generating a link to the entity. See toLink(). Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Informs the entity that entities it depends on will be deleted. Overrides ConfigEntityInterface:: |
7 |
ConfigEntityBase:: |
public static | function |
Acts on entities before they are deleted and before hooks are invoked. Overrides EntityBase:: |
8 |
ConfigEntityBase:: |
public | function |
Saves an entity permanently. Overrides EntityBase:: |
1 |
ConfigEntityBase:: |
public | function |
Sets the value of a property. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the original ID. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets the status of the configuration entity. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Sets the value of a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function | ||
ConfigEntityBase:: |
public static | function | Helper callback for uasort() to sort configuration entities by weight and label. | 6 |
ConfigEntityBase:: |
public | function |
Returns whether the configuration entity is enabled. Overrides ConfigEntityInterface:: |
4 |
ConfigEntityBase:: |
public | function |
Gets an array of all property values. Overrides EntityBase:: |
2 |
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Sets that the data should be trusted. Overrides ConfigEntityInterface:: |
|
ConfigEntityBase:: |
public | function |
Unsets a third-party setting. Overrides ThirdPartySettingsInterface:: |
|
ConfigEntityBase:: |
public | function |
Gets the public URL for this entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Gets the URL object for the entity. Overrides EntityBase:: |
|
ConfigEntityBase:: |
public | function |
Constructs an Entity object. Overrides EntityBase:: |
10 |
ConfigEntityBase:: |
public | function |
Overrides EntityBase:: |
4 |
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 | Aliased as: traitSleep | 1 |
DependencySerializationTrait:: |
public | function | 2 | |
DependencyTrait:: |
protected | property | The object's dependencies. | |
DependencyTrait:: |
protected | function | Adds multiple dependencies. | |
DependencyTrait:: |
protected | function | Adds a dependency. Aliased as: addDependencyTrait | |
EntityBase:: |
protected | property | Boolean indicating whether the entity should be forced to be new. | |
EntityBase:: |
protected | property | The entity type. | |
EntityBase:: |
protected | property | A typed data object wrapping this entity. | |
EntityBase:: |
public | function |
Checks data value access. Overrides AccessibleInterface:: |
1 |
EntityBase:: |
public | function |
Gets the bundle of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public static | function |
Constructs a new entity object, without permanently saving it. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Deletes an entity permanently. Overrides EntityInterface:: |
2 |
EntityBase:: |
public | function |
Enforces an entity to be new. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets the entity manager. | |
EntityBase:: |
protected | function | Gets the entity type bundle info service. | |
EntityBase:: |
protected | function | Gets the entity type manager. | |
EntityBase:: |
public | function |
The cache contexts associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The maximum age for which this object may be cached. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
The cache tags associated with this object. Overrides CacheableDependencyTrait:: |
|
EntityBase:: |
public | function |
Gets the key that is used to store configuration dependencies. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the entity type definition. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the ID of the type of the entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | The list cache tags to invalidate for this entity. | |
EntityBase:: |
public | function |
Gets a typed data object for this entity object. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Indicates if a link template exists for a given key. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets the identifier. Overrides EntityInterface:: |
11 |
EntityBase:: |
public | function |
Gets the label of the entity. Overrides EntityInterface:: |
6 |
EntityBase:: |
public | function |
Gets the language of the entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the language manager. | |
EntityBase:: |
protected | function | Gets an array link templates. | 1 |
EntityBase:: |
public static | function |
Loads an entity. Overrides EntityInterface:: |
|
EntityBase:: |
public static | function |
Loads one or more entities. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Acts on a created entity before hooks are invoked. Overrides EntityInterface:: |
4 |
EntityBase:: |
public static | function |
Acts on loaded entities. Overrides EntityInterface:: |
2 |
EntityBase:: |
public static | function |
Changes the values of an entity before it is created. Overrides EntityInterface:: |
5 |
EntityBase:: |
public | function |
Gets a list of entities referenced by this entity. Overrides EntityInterface:: |
1 |
EntityBase:: |
public | function |
Generates the HTML for a link to this entity. Overrides EntityInterface:: |
|
EntityBase:: |
public | function |
Gets a list of URI relationships supported by this entity. Overrides EntityInterface:: |
|
EntityBase:: |
protected | function | Gets an array of placeholders for this entity. | 2 |
EntityBase:: |
public | function |
Gets the entity UUID (Universally Unique Identifier). Overrides EntityInterface:: |
1 |
EntityBase:: |
protected | function | Gets the UUID generator. | |
Key:: |
protected | property | The key description. | |
Key:: |
protected | property | The key ID. | |
Key:: |
protected | property | The key value. | |
Key:: |
protected | property | The key input plugin id. | |
Key:: |
protected | property | The key input plugin settings. | |
Key:: |
protected | property | The key provider plugin id. | |
Key:: |
protected | property | The key provider plugin settings. | |
Key:: |
protected | property | The key type plugin id. | |
Key:: |
protected | property | The key type plugin settings. | |
Key:: |
protected | property | The key label. | |
Key:: |
protected | property | The plugin collections, indexed by plugin type. | |
Key:: |
protected | property | The types of plugins used by a the key entity. | |
Key:: |
public | function | ||
Key:: |
public | function |
Gets the description of the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Returns the configured key input for the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Returns the configured key provider for the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Returns the configured key type for the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Gets the value of the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Gets the values of the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Returns the configured plugin of the requested type. Overrides KeyInterface:: |
|
Key:: |
public | function | Create a plugin collection of the requested plugin type. | |
Key:: |
public | function |
Gets the plugin collections used by this object. Overrides ObjectWithPluginCollectionInterface:: |
|
Key:: |
public | function |
Returns the configured plugins for the key. Overrides KeyInterface:: |
|
Key:: |
public | function | Returns a list of plugins, for use in forms. | |
Key:: |
public | function | Return the list of plugin types supported by key entities. | |
Key:: |
public static | function |
Acts on deleted entities before the delete hook is invoked. Overrides EntityBase:: |
|
Key:: |
public | function |
Acts on a saved entity before the insert or update hook is invoked. Overrides EntityBase:: |
|
Key:: |
public | function |
Acts on an entity before the presave hook is invoked. Overrides ConfigEntityBase:: |
|
Key:: |
public | function |
Sets the value of the key. Overrides KeyInterface:: |
|
Key:: |
public | function |
Sets a plugin of the requested type and plugin ID. Overrides KeyInterface:: |
|
PluginDependencyTrait:: |
protected | function | Calculates and adds dependencies of a specific plugin instance. | 1 |
PluginDependencyTrait:: |
protected | function | Calculates and returns dependencies of a specific plugin instance. | |
PluginDependencyTrait:: |
protected | function | Wraps the module handler. | 1 |
PluginDependencyTrait:: |
protected | function | Wraps the theme handler. | 1 |
RefinableCacheableDependencyTrait:: |
public | function | 1 | |
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
RefinableCacheableDependencyTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
protected | property | Whether this entity is being created, updated or deleted through a synchronization process. | |
SynchronizableEntityTrait:: |
public | function | ||
SynchronizableEntityTrait:: |
public | function |