You are here

function _batch_test_batch_7 in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/system/tests/modules/batch_test/batch_test.module \_batch_test_batch_7()
  2. 9 core/modules/system/tests/modules/batch_test/batch_test.module \_batch_test_batch_7()

Batch 7: Performs two batches within a batch.

Operations:

  • op 7 from 1 to 5,
  • set batch 5 (op 5 from 1 to 10, should run at the end before batch 2)
  • set batch 6 (op 6 from 1 to 10, should run at the end after batch 1)
  • op 7 from 6 to 10,

File

core/modules/system/tests/modules/batch_test/batch_test.module, line 174
Helper module for the Batch API tests.

Code

function _batch_test_batch_7() {

  // Ensure the batch takes at least two iterations.
  $total = 10;
  $sleep = 1000000 / $total * 2;
  $batch_builder = (new BatchBuilder())
    ->setFile(\Drupal::service('extension.list.module')
    ->getPath('batch_test') . '/batch_test.callbacks.inc')
    ->setFinishCallback('_batch_test_finished_7');
  for ($i = 1; $i <= $total / 2; $i++) {
    $batch_builder
      ->addOperation('_batch_test_callback_7', [
      $i,
      $sleep,
    ]);
  }
  $batch_builder
    ->addOperation('_batch_test_nested_batch_callback', [
    [
      6,
      5,
    ],
  ]);
  for ($i = $total / 2 + 1; $i <= $total; $i++) {
    $batch_builder
      ->addOperation('_batch_test_callback_7', [
      $i,
      $sleep,
    ]);
  }
  return $batch_builder
    ->toArray() + [
    'batch_test_id' => 'batch_7',
  ];
}