function FieldStorageCreateCheckSubscriber::onFieldStorageDefinitionCreateEvent
Listener method for any field storage definition create event.
Parameters
\Drupal\Core\Field\FieldStorageDefinitionEvent $event: The field storage definition event object.
string $event_name: The event name.
File
-
core/
lib/ Drupal/ Core/ Test/ EventSubscriber/ FieldStorageCreateCheckSubscriber.php, line 71
Class
- FieldStorageCreateCheckSubscriber
- Response subscriber to field storage events.
Namespace
Drupal\Core\Test\EventSubscriberCode
public function onFieldStorageDefinitionCreateEvent(FieldStorageDefinitionEvent $event, $event_name) : void {
$entity_type_id = $event->getFieldStorageDefinition()
->getTargetEntityTypeId();
if ($entity_type_id) {
$storage = $this->entityTypeManager
->getStorage($entity_type_id);
if ($storage instanceof SqlEntityStorageInterface) {
$base_table = $storage->getTableMapping()
->getBaseTable();
if (!$this->schema
->tableExists($base_table)) {
if ($this->throwLogicExceptionOrDeprecationWarning) {
throw new \LogicException(sprintf('Creating the "%s" field storage definition without the entity schema "%s" being installed is not allowed.', $event->getFieldStorageDefinition()
->id(), $entity_type_id));
}
else {
@trigger_error('Creating the "' . $event->getFieldStorageDefinition()
->id() . '" field storage definition without the entity schema "' . $entity_type_id . '" being installed is deprecated in drupal:11.2.0 and will be replaced by a LogicException in drupal:12.0.0. See https://www.drupal.org/node/3493981', E_USER_DEPRECATED);
}
}
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.