protected function DatabaseStorageControllerNG::invokeHook

Overrides DatabaseStorageController::invokeHook().

Invokes field API attachers with a BC entity.

Overrides DatabaseStorageController::invokeHook

3 calls to DatabaseStorageControllerNG::invokeHook()
DatabaseStorageControllerNG::create in drupal/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
Overrides DatabaseStorageController::create().
DatabaseStorageControllerNG::delete in drupal/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
Overwrites \Drupal\Core\Entity\DatabaseStorageController::delete().
DatabaseStorageControllerNG::save in drupal/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
Overrides DatabaseStorageController::save().
2 methods override DatabaseStorageControllerNG::invokeHook()
NodeStorageController::invokeHook in drupal/core/modules/node/lib/Drupal/node/NodeStorageController.php
Overrides Drupal\Core\Entity\DatabaseStorageController::invokeHook().
UserStorageController::invokeHook in drupal/core/modules/user/lib/Drupal/user/UserStorageController.php
Overrides DatabaseStorageController::invokeHook().

File

drupal/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php, line 503
Contains \Drupal\Core\Entity\DatabaseStorageControllerNG.

Class

DatabaseStorageControllerNG
Implements Field API specific enhancements to the DatabaseStorageController class.

Namespace

Drupal\Core\Entity

Code

protected function invokeHook($hook, EntityInterface $entity) {
  $function = 'field_attach_' . $hook;

  // @todo: field_attach_delete_revision() is named the wrong way round,
  // consider renaming it.
  if ($function == 'field_attach_revision_delete') {
    $function = 'field_attach_delete_revision';
  }
  if (!empty($this->entityInfo['fieldable']) && function_exists($function)) {
    $function($entity);
  }

  // Invoke the hook.
  module_invoke_all($this->entityType . '_' . $hook, $entity);

  // Invoke the respective entity-level hook.
  module_invoke_all('entity_' . $hook, $entity, $this->entityType);
}