function BatchTestDefinitions::batch7

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/src/BatchTestDefinitions.php, line 165

Class

BatchTestDefinitions

Namespace

Drupal\batch_test

Code

public function batch7() : 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,
        'finished7',
    ]);
    for ($i = 1; $i <= $total / 2; $i++) {
        $batch_builder->addOperation([
            $batch_test_callbacks,
            'callback7',
        ], [
            $i,
            $sleep,
        ]);
    }
    $batch_builder->addOperation([
        $batch_test_callbacks,
        'nestedBatchCallback',
    ], [
        [
            6,
            5,
        ],
    ]);
    for ($i = $total / 2 + 1; $i <= $total; $i++) {
        $batch_builder->addOperation([
            $batch_test_callbacks,
            'callback7',
        ], [
            $i,
            $sleep,
        ]);
    }
    return $batch_builder->toArray() + [
        'batch_test_id' => 'batch7',
    ];
}

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