Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Core/Entity/EntityFieldManagerInterface.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | af1871eacc83 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Core/Entity/EntityFieldManagerInterface.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,147 @@ +<?php + +namespace Drupal\Core\Entity; + +/** + * Provides an interface for an entity field manager. + */ +interface EntityFieldManagerInterface { + + /** + * Gets the base field definitions for a content entity type. + * + * Only fields that are not specific to a given bundle or set of bundles are + * returned. This excludes configurable fields, as they are always attached + * to a specific bundle. + * + * @param string $entity_type_id + * The entity type ID. Only entity types that implement + * \Drupal\Core\Entity\FieldableEntityInterface are supported. + * + * @return \Drupal\Core\Field\FieldDefinitionInterface[] + * The array of base field definitions for the entity type, keyed by field + * name. + * + * @throws \LogicException + * Thrown if one of the entity keys is flagged as translatable. + */ + public function getBaseFieldDefinitions($entity_type_id); + + /** + * Gets the field definitions for a specific bundle. + * + * @param string $entity_type_id + * The entity type ID. Only entity types that implement + * \Drupal\Core\Entity\FieldableEntityInterface are supported. + * @param string $bundle + * The bundle. + * + * @return \Drupal\Core\Field\FieldDefinitionInterface[] + * The array of field definitions for the bundle, keyed by field name. + */ + public function getFieldDefinitions($entity_type_id, $bundle); + + /** + * Gets the field storage definitions for a content entity type. + * + * This returns all field storage definitions for base fields and bundle + * fields of an entity type. Note that field storage definitions of a base + * field equal the full base field definition (i.e. they implement + * FieldDefinitionInterface), while the storage definitions for bundle fields + * may implement FieldStorageDefinitionInterface only. + * + * @param string $entity_type_id + * The entity type ID. Only content entities are supported. + * + * @return \Drupal\Core\Field\FieldStorageDefinitionInterface[] + * The array of field storage definitions for the entity type, keyed by + * field name. + * + * @see \Drupal\Core\Field\FieldStorageDefinitionInterface + */ + public function getFieldStorageDefinitions($entity_type_id); + + /** + * Gets a lightweight map of fields across bundles. + * + * @return array + * An array keyed by entity type. Each value is an array which keys are + * field names and value is an array with two entries: + * - type: The field type. + * - bundles: An associative array of the bundles in which the field + * appears, where the keys and values are both the bundle's machine name. + */ + public function getFieldMap(); + + /** + * Sets a lightweight map of fields across bundles. + * + * @param array[] $field_map + * See the return value of self::getFieldMap(). + * + * @return $this + */ + public function setFieldMap(array $field_map); + + /** + * Gets a lightweight map of fields across bundles filtered by field type. + * + * @param string $field_type + * The field type to filter by. + * + * @return array + * An array keyed by entity type. Each value is an array which keys are + * field names and value is an array with two entries: + * - type: The field type. + * - bundles: An associative array of the bundles in which the field + * appears, where the keys and values are both the bundle's machine name. + */ + public function getFieldMapByFieldType($field_type); + + /** + * Clears static and persistent field definition caches. + */ + public function clearCachedFieldDefinitions(); + + /** + * Disable the use of caches. + * + * @param bool $use_caches + * FALSE to not use any caches. + * + * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0. + * + * @todo Remove in https://www.drupal.org/node/2549143. + */ + public function useCaches($use_caches = FALSE); + + /** + * Gets the "extra fields" for a bundle. + * + * @param string $entity_type_id + * The entity type ID. + * @param string $bundle + * The bundle name. + * + * @return array + * A nested array of 'pseudo-field' elements. Each list is nested within the + * following keys: entity type, bundle name, context (either 'form' or + * 'display'). The keys are the name of the elements as appearing in the + * renderable array (either the entity form or the displayed entity). The + * value is an associative array: + * - label: The human readable name of the element. Make sure you sanitize + * this appropriately. + * - description: A short description of the element contents. + * - weight: The default weight of the element. + * - visible: (optional) The default visibility of the element. Defaults to + * TRUE. + * - edit: (optional) String containing markup (normally a link) used as the + * element's 'edit' operation in the administration interface. Only for + * 'form' context. + * - delete: (optional) String containing markup (normally a link) used as the + * element's 'delete' operation in the administration interface. Only for + * 'form' context. + */ + public function getExtraFields($entity_type_id, $bundle); + +}