function BatchTestDefinitions::batch3

Batch 3: Performs both single and multistep operations.

Operations:

  • op 1 from 1 to 5,
  • op 2 from 1 to 5,
  • op 1 from 6 to 10,
  • op 2 from 6 to 10.

File

core/modules/system/tests/modules/batch_test/src/BatchTestDefinitions.php, line 72

Class

BatchTestDefinitions
Batch definitions for testing batches.

Namespace

Drupal\batch_test

Code

public function batch3() : array {
  $batch_test_callbacks = new BatchTestCallbacks();
  // Ensure the batch takes at least two iterations.
  $total = 10;
  $sleep = 1000000 / $total * 2;
  $batch_builder = (new BatchBuilder())->setFinishCallback([
    $batch_test_callbacks,
    'finished3',
  ]);
  for ($i = 1; $i <= round($total / 2); $i++) {
    $batch_builder->addOperation([
      $batch_test_callbacks,
      'callback1',
    ], [
      $i,
      $sleep,
    ]);
  }
  $batch_builder->addOperation([
    $batch_test_callbacks,
    'callback2',
  ], [
    1,
    $total / 2,
    $sleep,
  ]);
  for ($i = round($total / 2) + 1; $i <= $total; $i++) {
    $batch_builder->addOperation([
      $batch_test_callbacks,
      'callback1',
    ], [
      $i,
      $sleep,
    ]);
  }
  $batch_builder->addOperation([
    $batch_test_callbacks,
    'callback2',
  ], [
    6,
    $total / 2,
    $sleep,
  ]);
  return $batch_builder->toArray() + [
    'batch_test_id' => 'batch3',
  ];
}

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