Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0 / 0 |
|
100.00% |
0 / 0 |
CRAP | |
100.00% |
0 / 0 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Entity\Schema\DynamicallyFieldableEntityStorageSchemaInterface. | |
*/ | |
namespace Drupal\Core\Entity\Schema; | |
use Drupal\Core\Field\FieldStorageDefinitionInterface; | |
use Drupal\Core\Field\FieldStorageDefinitionListenerInterface; | |
/** | |
* A storage schema that supports entity types with dynamic field definitions. | |
* | |
* A storage schema that implements this interface can react to the entity | |
* type's field definitions changing, due to modules being installed or | |
* uninstalled, or via field UI, or via code changes to the entity class. | |
* | |
* For example, configurable fields defined and exposed by field.module. | |
*/ | |
interface DynamicallyFieldableEntityStorageSchemaInterface extends EntityStorageSchemaInterface, FieldStorageDefinitionListenerInterface { | |
/** | |
* Checks if the changes to the storage definition requires schema changes. | |
* | |
* @param \Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition | |
* The updated field storage definition. | |
* @param \Drupal\Core\Field\FieldStorageDefinitionInterface $original | |
* The original field storage definition. | |
* | |
* @return bool | |
* TRUE if storage schema changes are required, FALSE otherwise. | |
*/ | |
public function requiresFieldStorageSchemaChanges(FieldStorageDefinitionInterface $storage_definition, FieldStorageDefinitionInterface $original); | |
/** | |
* Checks if existing data would be lost if the schema changes were applied. | |
* | |
* If there are no schema changes needed, then no data needs to be migrated, | |
* but it is not the responsibility of this function to recheck what | |
* requiresFieldStorageSchemaChanges() checks. Rather, the meaning of what | |
* this function returns when requiresFieldStorageSchemaChanges() returns | |
* FALSE is undefined. Callers are expected to only call this function when | |
* requiresFieldStorageSchemaChanges() is TRUE. | |
* | |
* This function can return FALSE if any of these conditions apply: | |
* - There are no existing entities for the entity type to which this field | |
* is attached. | |
* - There are existing entities, but none with existing values for this | |
* field. | |
* - There are existing field values, but the schema changes can be applied | |
* without losing them (e.g., if the schema changes can be performed by | |
* altering tables rather than dropping and recreating them). | |
* - The only field values that would be lost are ones that are not valid for | |
* the new definition (e.g., if changing a field from revisionable to | |
* non-revisionable, then it's okay to drop data for the non-default | |
* revision). | |
* | |
* When this function returns FALSE, site administrators will be unable to | |
* perform an automated update, and will instead need to perform a site | |
* migration or invoke some custom update process. | |
* | |
* @param \Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition | |
* The updated field storage definition. | |
* @param \Drupal\Core\Field\FieldStorageDefinitionInterface $original | |
* The original field storage definition. | |
* | |
* @return bool | |
* TRUE if data migration is required, FALSE otherwise. | |
* | |
* @see self::requiresFieldStorageSchemaChanges() | |
*/ | |
public function requiresFieldDataMigration(FieldStorageDefinitionInterface $storage_definition, FieldStorageDefinitionInterface $original); | |
/** | |
* Performs final cleanup after all data of a field has been purged. | |
* | |
* @param \Drupal\Core\Field\FieldStorageDefinitionInterface $storage_definition | |
* The field being purged. | |
*/ | |
public function finalizePurge(FieldStorageDefinitionInterface $storage_definition); | |
} |