$operationDataBuilder=\Drupal::service('eb.operation_data_builder');// Check if data is in definition format$isDefinitionFormat=$operationDataBuilder->isDefinitionFormat($data);// Convert definition data to operations$operations=$operationDataBuilder->build(['bundle_definitions'=>[...],'field_definitions'=>[...],'display_field_definitions'=>[...],]);// Get all recognized definition keys$keys=$operationDataBuilder->getAllDefinitionKeys();// Returns: ['bundle_definitions', 'field_definitions', 'field_group_definitions', ...]
$operationBuilder=\Drupal::service('eb.operation_builder');// Build a single operation instance$operation=$operationBuilder->build(['operation'=>'create_field','entity_type'=>'node','bundle'=>'article','field_name'=>'field_body','field_type'=>'text_long',]);// Build multiple operation instances$operations=$operationBuilder->buildBatch($operationDataArray);
$validationManager=\Drupal::service('eb.validation_manager');// Validate a single operation$result=$validationManager->validateOperation($operation);// Validate a batch of operations with context$result=$validationManager->validateBatch($operations);if(!$result->isValid()){foreach($result->getErrors()as$error){\Drupal::messenger()->addError($error['message']);}}
$operationProcessor=\Drupal::service('eb.operation_processor');// Execute a single operation$result=$operationProcessor->execute($operation);// Execute a batch with rollback tracking$results=$operationProcessor->executeBatch($operations,TRUE,['definition_id'=>'my_definition',]);
$rollbackManager=\Drupal::service('eb.rollback_manager');// Start a rollback session$rollback=$rollbackManager->startRollback('my_definition','Apply: my_definition');// Store rollback data for an operation$rollbackManager->storeRollbackData($operation,$result,'my_definition');// Finalize the rollback session$rollbackManager->finalizeRollback();// Execute a rollback$result=$rollbackManager->executeRollback($rollbackId);// List rollbacks for a definition$rollbacks=$rollbackManager->listRollbacksByDefinition('my_definition','pending');// Purge old rollbacks$count=$rollbackManager->purgeOldRollbacks(30);// Days
$dependencyResolver=\Drupal::service('eb.dependency_resolver');// Resolve and sort operations$sortedOperations=$dependencyResolver->resolve($operations);// Get dependencies for a single operation$dependencies=$dependencyResolver->findDependencies($operation,$allOperations);
$definitionFactory=\Drupal::service('eb.definition_factory');// Create from YAML data$definition=$definitionFactory->createFromYaml($data);// Create or update$definition=$definitionFactory->createOrUpdate($id,$data);
$definitionGenerator=\Drupal::service('eb.definition_generator');// Generate from multiple bundles$data=$definitionGenerator->generate(['node'=>['article','page'],'taxonomy_term'=>['tags'],],['include_fields'=>TRUE,'include_displays'=>TRUE,'include_extensions'=>TRUE,'normalize_settings'=>TRUE,]);// Generate from single bundle$data=$definitionGenerator->generateBundle('node','article');
$operationManager=\Drupal::service('plugin.manager.eb_operation');// Get all definitions$definitions=$operationManager->getDefinitions();// Create instance$operation=$operationManager->createInstance('create_field',$configuration);
$validatorManager=\Drupal::service('plugin.manager.eb_validator');// Get all validators$definitions=$validatorManager->getDefinitions();// Create instance$validator=$validatorManager->createInstance('dependency_validator');
$extensionManager=\Drupal::service('plugin.manager.eb_extension');// Get all extensions$extensions=$extensionManager->getExtensions();// Get extensions for operation type$extensions=$extensionManager->getExtensionsForOperation('create_field_group');// Get extensions for YAML key$extensions=$extensionManager->getExtensionsForYamlKey('field_group_definitions');// Get all definition keys from extensions$keys=$extensionManager->getAllDefinitionKeys();
// These interfaces resolve to their implementationsDrupal\eb\Service\DiscoveryServiceInterfaceDrupal\eb\Service\EbLogManagerInterfaceDrupal\eb\Service\FieldManagementServiceInterfaceDrupal\eb\Service\OperationBuilderInterfaceDrupal\eb\Service\ValidationManagerInterfaceDrupal\eb\Service\OperationProcessorInterfaceDrupal\eb\Service\RollbackManagerInterfaceDrupal\eb\Service\OperationDataBuilderInterfaceDrupal\eb\Service\DefinitionGeneratorInterface