FieldStorageDefinitionEventSubscriberTrait.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace Drupal\Core\Field;
  3. /**
  4. * Helper methods for FieldStorageDefinitionListenerInterface.
  5. *
  6. * This allows a class implementing FieldStorageDefinitionListenerInterface to
  7. * subscribe and react to field storage definition events.
  8. *
  9. * @see \Symfony\Component\EventDispatcher\EventSubscriberInterface
  10. * @see \Drupal\Core\Field\FieldStorageDefinitionListenerInterface
  11. */
  12. trait FieldStorageDefinitionEventSubscriberTrait {
  13. /**
  14. * Returns the subscribed events.
  15. *
  16. * @return array
  17. * An array of subscribed event names.
  18. *
  19. * @see \Symfony\Component\EventDispatcher\EventSubscriberInterface::getSubscribedEvents()
  20. */
  21. public static function getFieldStorageDefinitionEvents() {
  22. $event = ['onFieldStorageDefinitionEvent', 100];
  23. $events[FieldStorageDefinitionEvents::CREATE][] = $event;
  24. $events[FieldStorageDefinitionEvents::UPDATE][] = $event;
  25. $events[FieldStorageDefinitionEvents::DELETE][] = $event;
  26. return $events;
  27. }
  28. /**
  29. * Listener method for any field storage definition event.
  30. *
  31. * @param \Drupal\Core\Field\FieldStorageDefinitionEvent $event
  32. * The field storage definition event object.
  33. * @param string $event_name
  34. * The event name.
  35. */
  36. public function onFieldStorageDefinitionEvent(FieldStorageDefinitionEvent $event, $event_name) {
  37. switch ($event_name) {
  38. case FieldStorageDefinitionEvents::CREATE:
  39. $this->onFieldStorageDefinitionCreate($event->getFieldStorageDefinition());
  40. break;
  41. case FieldStorageDefinitionEvents::UPDATE:
  42. $this->onFieldStorageDefinitionUpdate($event->getFieldStorageDefinition(), $event->getOriginal());
  43. break;
  44. case FieldStorageDefinitionEvents::DELETE:
  45. $this->onFieldStorageDefinitionDelete($event->getFieldStorageDefinition());
  46. break;
  47. }
  48. }
  49. /**
  50. * {@inheritdoc}
  51. */
  52. public function onFieldStorageDefinitionCreate(FieldStorageDefinitionInterface $storage_definition) {
  53. }
  54. /**
  55. * {@inheritdoc}
  56. */
  57. public function onFieldStorageDefinitionUpdate(FieldStorageDefinitionInterface $storage_definition, FieldStorageDefinitionInterface $original) {
  58. }
  59. /**
  60. * {@inheritdoc}
  61. */
  62. public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $storage_definition) {
  63. }
  64. }