class EntityTestDefinitionSubscriber in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/tests/modules/entity_test/src/EntityTestDefinitionSubscriber.php \Drupal\entity_test\EntityTestDefinitionSubscriber
Test entity type and field storage definition event subscriber.
Hierarchy
- class \Drupal\entity_test\EntityTestDefinitionSubscriber implements EntityTypeListenerInterface, FieldStorageDefinitionListenerInterface, EventSubscriberInterface uses EntityTypeEventSubscriberTrait, FieldStorageDefinitionEventSubscriberTrait
Expanded class hierarchy of EntityTestDefinitionSubscriber
1 string reference to 'EntityTestDefinitionSubscriber'
- entity_test.services.yml in core/
modules/ system/ tests/ modules/ entity_test/ entity_test.services.yml - core/modules/system/tests/modules/entity_test/entity_test.services.yml
1 service uses EntityTestDefinitionSubscriber
- entity_test.definition.subscriber in core/
modules/ system/ tests/ modules/ entity_test/ entity_test.services.yml - Drupal\entity_test\EntityTestDefinitionSubscriber
File
- core/
modules/ system/ tests/ modules/ entity_test/ src/ EntityTestDefinitionSubscriber.php, line 24 - Contains \Drupal\entity_test\EntityTestDefinitionSubscriber.
Namespace
Drupal\entity_testView source
class EntityTestDefinitionSubscriber implements EventSubscriberInterface, EntityTypeListenerInterface, FieldStorageDefinitionListenerInterface {
use EntityTypeEventSubscriberTrait;
use FieldStorageDefinitionEventSubscriberTrait;
/**
* The state service.
*
* @var \Drupal\Core\State\StateInterface
*/
protected $state;
/**
* Flag determining whether events should be tracked.
*
* @var bool
*/
protected $trackEvents = FALSE;
/**
* {@inheritdoc}
*/
function __construct(StateInterface $state) {
$this->state = $state;
}
/**
* {@inheritdoc}
*/
public static function getSubscribedEvents() {
return static::getEntityTypeEvents() + static::getFieldStorageDefinitionEvents();
}
/**
* {@inheritdoc}
*/
public function onEntityTypeCreate(EntityTypeInterface $entity_type) {
$this
->storeEvent(EntityTypeEvents::CREATE);
}
/**
* {@inheritdoc}
*/
public function onEntityTypeUpdate(EntityTypeInterface $entity_type, EntityTypeInterface $original) {
$this
->storeEvent(EntityTypeEvents::UPDATE);
}
/**
* {@inheritdoc}
*/
public function onEntityTypeDelete(EntityTypeInterface $entity_type) {
$this
->storeEvent(EntityTypeEvents::DELETE);
}
/**
* {@inheritdoc}
*/
public function onFieldStorageDefinitionCreate(FieldStorageDefinitionInterface $storage_definition) {
$this
->storeEvent(FieldStorageDefinitionEvents::CREATE);
}
/**
* {@inheritdoc}
*/
public function onFieldStorageDefinitionUpdate(FieldStorageDefinitionInterface $storage_definition, FieldStorageDefinitionInterface $original) {
$this
->storeEvent(FieldStorageDefinitionEvents::UPDATE);
}
/**
* {@inheritdoc}
*/
public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $storage_definition) {
$this
->storeEvent(FieldStorageDefinitionEvents::DELETE);
}
/**
* Enables event tracking.
*/
public function enableEventTracking() {
$this->trackEvents = TRUE;
}
/**
* Checks whether an event has been dispatched.
*
* @param string $event_name
* The event name.
*
* @return bool
* TRUE if the event has been dispatched, FALSE otherwise.
*/
public function hasEventFired($event_name) {
return (bool) $this->state
->get($event_name);
}
/**
* Stores the specified event.
*
* @param string $event_name
* The event name.
*/
protected function storeEvent($event_name) {
if ($this->trackEvents) {
$this->state
->set($event_name, TRUE);
}
}
}