12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- namespace Drupal\Core\Config\Entity;
- use Drupal\Core\Entity\EntityTypeInterface;
- /**
- * Provides an interface for a configuration entity type and its metadata.
- */
- interface ConfigEntityTypeInterface extends EntityTypeInterface {
- /**
- * Length limit of the configuration entity prefix.
- *
- * Configuration entity names are composed of two parts:
- * - The config prefix, which is returned by getConfigPrefix() and is
- * composed of:
- * - The provider module name (limited to 50 characters by
- * DRUPAL_EXTENSION_NAME_MAX_LENGTH).
- * - The module-specific namespace identifier, which defaults to the
- * configuration entity type ID. Entity type IDs are limited to 32
- * characters by EntityTypeInterface::ID_MAX_LENGTH.
- * - The configuration entity ID.
- * So, a typical configuration entity filename will look something like:
- * provider_module_name.namespace_identifier.config_entity_id.yml
- *
- * Most file systems limit a file name's length to 255 characters, so
- * ConfigBase::MAX_NAME_LENGTH restricts the full configuration object name
- * to 250 characters (leaving 5 for the file extension). Therefore, in
- * order to leave sufficient characters to construct a configuration ID,
- * the configuration entity prefix is limited to 83 characters: up to 50
- * characters for the module name, 1 for the dot, and 32 for the namespace
- * identifier. This also allows modules with shorter names to define longer
- * namespace identifiers if desired.
- *
- * @see \Drupal\Core\Config\ConfigBase::MAX_NAME_LENGTH
- * @see \Drupal\Core\Config\Entity\ConfigEntityTypeInterface::getConfigPrefix()
- * @see DRUPAL_EXTENSION_NAME_MAX_LENGTH
- * @see \Drupal\Core\Config\Entity\ConfigEntityStorage::MAX_ID_LENGTH
- * @see \Drupal\Core\Entity\EntityTypeInterface::ID_MAX_LENGTH
- */
- const PREFIX_LENGTH = 83;
- /**
- * Gets the config prefix used by the configuration entity type.
- *
- * The config prefix is used to prefix configuration entity IDs when they are
- * stored in the configuration system. The default config prefix is
- * constructed from the name of the module that provides the entity type and
- * the ID of the entity type. If a config_prefix annotation is present it will
- * be used in place of the entity type ID.
- *
- * Prefixing with the module that provides the configuration entity type
- * ensures that configuration entities depend on the module that provides the
- * configuration entity type.
- *
- * @return string
- * The config prefix.
- *
- * @throws \Drupal\Core\Config\ConfigPrefixLengthException
- * Exception thrown when the length of the prefix exceeds PREFIX_LENGTH.
- */
- public function getConfigPrefix();
- /**
- * Gets the config entity properties to export if declared on the annotation.
- *
- * @return array|null
- * The properties to export or NULL if they can not be determine from the
- * config entity type annotation.
- */
- public function getPropertiesToExport();
- /**
- * Gets the keys that are available for fast lookup.
- *
- * @return string[]
- * The list of lookup keys.
- */
- public function getLookupKeys();
- }
|