function update_authorize_run_update in Drupal 8
Same name and namespace in other branches
- 7 modules/update/update.authorize.inc \update_authorize_run_update()
- 9 core/modules/update/update.authorize.inc \update_authorize_run_update()
- 10 core/modules/update/update.authorize.inc \update_authorize_run_update()
Updates existing projects when invoked by authorize.php.
Callback for system_authorized_init() in update_manager_update_ready_form_submit().
Parameters
$filetransfer: The FileTransfer object created by authorize.php for use during this operation.
$projects: A nested array of projects to install into the live webroot, keyed by project name. Each subarray contains the following keys:
- project: The canonical project short name.
- updater_name: The name of the Drupal\Core\Updater\Updater class to use for this project.
- local_url: The locally installed location of new code to update with.
Return value
\Symfony\Component\HttpFoundation\Response|null The result of processing the batch that updates the projects. If this is an instance of \Symfony\Component\HttpFoundation\Response the calling code should use that response for the current page request.
1 call to update_authorize_run_update()
- UpdateReady::submitForm in core/
modules/ update/ src/ Form/ UpdateReady.php - Form submission handler.
1 string reference to 'update_authorize_run_update'
- UpdateReady::submitForm in core/
modules/ update/ src/ Form/ UpdateReady.php - Form submission handler.
File
- core/
modules/ update/ update.authorize.inc, line 38 - Callbacks and related functions invoked by authorize.php to update projects.
Code
function update_authorize_run_update($filetransfer, $projects) {
$operations = [];
foreach ($projects as $project_info) {
$operations[] = [
'update_authorize_batch_copy_project',
[
$project_info['project'],
$project_info['updater_name'],
$project_info['local_url'],
$filetransfer,
],
];
}
$batch = [
'init_message' => t('Preparing to update your site'),
'operations' => $operations,
'finished' => 'update_authorize_update_batch_finished',
'file' => drupal_get_path('module', 'update') . '/update.authorize.inc',
];
batch_set($batch);
// Since authorize.php has its own method for setting the page title, set it
// manually here rather than passing it in to batch_set() as would normally
// be done.
\Drupal::request()
->getSession()
->set('authorize_page_title', t('Installing updates'));
// Invoke the batch via authorize.php.
return system_authorized_batch_process();
}