function BatchStorage::create

Same name in this branch
  1. 8.9.x core/lib/Drupal/Core/ProxyClass/Batch/BatchStorage.php \Drupal\Core\ProxyClass\Batch\BatchStorage::create()
Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/ProxyClass/Batch/BatchStorage.php \Drupal\Core\ProxyClass\Batch\BatchStorage::create()
  2. 9 core/lib/Drupal/Core/Batch/BatchStorage.php \Drupal\Core\Batch\BatchStorage::create()
  3. 10 core/lib/Drupal/Core/ProxyClass/Batch/BatchStorage.php \Drupal\Core\ProxyClass\Batch\BatchStorage::create()
  4. 10 core/lib/Drupal/Core/Batch/BatchStorage.php \Drupal\Core\Batch\BatchStorage::create()
  5. 11.x core/lib/Drupal/Core/ProxyClass/Batch/BatchStorage.php \Drupal\Core\ProxyClass\Batch\BatchStorage::create()
  6. 11.x core/lib/Drupal/Core/Batch/BatchStorage.php \Drupal\Core\Batch\BatchStorage::create()

Overrides BatchStorageInterface::create

File

core/lib/Drupal/Core/Batch/BatchStorage.php, line 123

Class

BatchStorage

Namespace

Drupal\Core\Batch

Code

public function create(array $batch) {
    // Ensure that a session is started before using the CSRF token generator.
    $this->session
        ->start();
    $try_again = FALSE;
    try {
        // The batch table might not yet exist.
        $this->doCreate($batch);
    } catch (\Exception $e) {
        // If there was an exception, try to create the table.
        if (!($try_again = $this->ensureTableExists())) {
            // If the exception happened for other reason than the missing table,
            // propagate the exception.
            throw $e;
        }
    }
    // Now that the table has been created, try again if necessary.
    if ($try_again) {
        $this->doCreate($batch);
    }
}

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