public function DbUpdateController::handle in Drupal 10
Same name and namespace in other branches
- 8 core/modules/system/src/Controller/DbUpdateController.php \Drupal\system\Controller\DbUpdateController::handle()
- 9 core/modules/system/src/Controller/DbUpdateController.php \Drupal\system\Controller\DbUpdateController::handle()
Returns a database update page.
Parameters
string $op: The update operation to perform. Can be any of the below:
- info
- selection
- run
- results
\Symfony\Component\HttpFoundation\Request $request: The current request object.
Return value
\Symfony\Component\HttpFoundation\Response A response object.
File
- core/
modules/ system/ src/ Controller/ DbUpdateController.php, line 143
Class
- DbUpdateController
- Controller routines for database update routes.
Namespace
Drupal\system\ControllerCode
public function handle($op, Request $request) {
require_once $this->root . '/core/includes/install.inc';
require_once $this->root . '/core/includes/update.inc';
drupal_load_updates();
if ($request->query
->get('continue')) {
$request
->getSession()
->set('update_ignore_warnings', TRUE);
}
$regions = [];
$requirements = update_check_requirements();
$severity = drupal_requirements_severity($requirements);
if ($severity == REQUIREMENT_ERROR || $severity == REQUIREMENT_WARNING && !$request
->getSession()
->has('update_ignore_warnings')) {
$regions['sidebar_first'] = $this
->updateTasksList('requirements');
$output = $this
->requirements($severity, $requirements, $request);
}
else {
switch ($op) {
case 'selection':
$regions['sidebar_first'] = $this
->updateTasksList('selection');
$output = $this
->selection($request);
break;
case 'run':
$regions['sidebar_first'] = $this
->updateTasksList('run');
$output = $this
->triggerBatch($request);
break;
case 'info':
$regions['sidebar_first'] = $this
->updateTasksList('info');
$output = $this
->info($request);
break;
case 'results':
$regions['sidebar_first'] = $this
->updateTasksList('results');
$output = $this
->results($request);
break;
// Regular batch ops : defer to batch processing API.
default:
require_once $this->root . '/core/includes/batch.inc';
$regions['sidebar_first'] = $this
->updateTasksList('run');
$output = _batch_page($request);
break;
}
}
if ($output instanceof Response) {
return $output;
}
$title = $output['#title'] ?? $this
->t('Drupal database update');
return $this->bareHtmlPageRenderer
->renderBarePage($output, $title, 'maintenance_page', $regions);
}