class LateResourceTypeBuildEventSubscriber

Same name and namespace in other branches
  1. 11.x core/modules/jsonapi/tests/modules/jsonapi_test_resource_type_building/src/EventSubscriber/LateResourceTypeBuildEventSubscriber.php \Drupal\jsonapi_test_resource_type_building\EventSubscriber\LateResourceTypeBuildEventSubscriber

Event subscriber which tests enabling disabled resource type fields.

@internal

Hierarchy

Expanded class hierarchy of LateResourceTypeBuildEventSubscriber

1 string reference to 'LateResourceTypeBuildEventSubscriber'
jsonapi_test_resource_type_building.services.yml in core/modules/jsonapi/tests/modules/jsonapi_test_resource_type_building/jsonapi_test_resource_type_building.services.yml
core/modules/jsonapi/tests/modules/jsonapi_test_resource_type_building/jsonapi_test_resource_type_building.services.yml
1 service uses LateResourceTypeBuildEventSubscriber
jsonapi_test_resource_type_building.late_build_subscriber in core/modules/jsonapi/tests/modules/jsonapi_test_resource_type_building/jsonapi_test_resource_type_building.services.yml
Drupal\jsonapi_test_resource_type_building\EventSubscriber\LateResourceTypeBuildEventSubscriber

File

core/modules/jsonapi/tests/modules/jsonapi_test_resource_type_building/src/EventSubscriber/LateResourceTypeBuildEventSubscriber.php, line 16

Namespace

Drupal\jsonapi_test_resource_type_building\EventSubscriber
View source
class LateResourceTypeBuildEventSubscriber implements EventSubscriberInterface {
  
  /**
   * {@inheritdoc}
   */
  public static function getSubscribedEvents() : array {
    return [
      ResourceTypeBuildEvents::BUILD => [
        [
          'enableResourceTypeFields',
        ],
      ],
    ];
  }
  
  /**
   * Disables any resource type fields that have been aliased by a test.
   *
   * @param \Drupal\jsonapi\ResourceType\ResourceTypeBuildEvent $event
   *   The build event.
   */
  public function enableResourceTypeFields(ResourceTypeBuildEvent $event) : void {
    $aliases = \Drupal::state()->get('jsonapi_test_resource_type_builder.enabled_resource_type_fields', []);
    $resource_type_name = $event->getResourceTypeName();
    if (in_array($resource_type_name, array_keys($aliases), TRUE)) {
      foreach ($event->getFields() as $field) {
        if (isset($aliases[$resource_type_name][$field->getInternalName()]) && $aliases[$resource_type_name][$field->getInternalName()] === TRUE) {
          $event->enableField($field);
        }
      }
    }
  }

}

Members

Title Sort descending Modifiers Object type Summary
LateResourceTypeBuildEventSubscriber::enableResourceTypeFields public function Disables any resource type fields that have been aliased by a test.
LateResourceTypeBuildEventSubscriber::getSubscribedEvents public static function

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.