eca-1.0.x-dev/src/Event/EntityApplianceTrait.php
src/Event/EntityApplianceTrait.php
<?php namespace Drupal\eca\Event; use Drupal\Core\Entity\EntityInterface; /** * Trait for events that check for appliance of an entity. * * @internal * This trait is not meant to be used as a public API. It is subject for name * change or may be removed completely, also on minor version updates. */ trait EntityApplianceTrait { /** * Checks whether the given entity applies for the given arguments. * * @param \Drupal\Core\Entity\EntityInterface $entity * The entity to check for. * @param array $arguments * Configured arguments. * * @return bool * Returns TRUE when it applies, FALSE otherwise. */ protected function appliesForEntityTypeOrBundle(EntityInterface $entity, array $arguments): bool { if (!empty($arguments['entity_type_id']) && $arguments['entity_type_id'] !== '*') { $contains_entity_type_id = FALSE; foreach (explode(',', $arguments['entity_type_id']) as $c_entity_type_id) { $c_entity_type_id = strtolower(trim($c_entity_type_id)); if ($contains_entity_type_id = ($c_entity_type_id === $entity->getEntityTypeId())) { break; } } if (!$contains_entity_type_id) { return FALSE; } } if (!empty($arguments['bundle']) && $arguments['bundle'] !== '*') { $contains_bundle = FALSE; foreach (explode(',', $arguments['bundle']) as $c_bundle) { $c_bundle = strtolower(trim($c_bundle)); if ($contains_bundle = ($c_bundle === $entity->bundle())) { break; } } if (!$contains_bundle) { return FALSE; } } return TRUE; } }