public Updater::update(&$filetransfer, $overrides = array())
Updates a Drupal project and returns a list of next actions.
Parameters
\Drupal\Core\FileTransfer\FileTransfer $filetransfer: Object that is a child of FileTransfer. Used for moving files to the server.
array $overrides: An array of settings to override defaults; see self::getInstallArgs().
Return value
array An array of links which the user may need to complete the update
Throws
\Drupal\Core\Updater\UpdaterException
\Drupal\Core\Updater\UpdaterFileTransferException
File
- core/lib/Drupal/Core/Updater/Updater.php, line 215
Class
- Updater
- Defines the base class for Updaters used in Drupal.
Namespace
Drupal\Core\Updater
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | public function update(& $filetransfer , $overrides = array ()) { try { // Establish arguments with possible overrides. $args = $this ->getInstallArgs( $overrides ); // Take a Backup. if ( $args [ 'make_backup' ]) { $this ->makeBackup( $filetransfer , $args [ 'install_dir' ], $args [ 'backup_dir' ]); } if (! $this ->name) { // This is bad, don't want to delete the install directory. throw new UpdaterException(t( 'Fatal error in update, cowardly refusing to wipe out the install directory.' )); } // Make sure the installation parent directory exists and is writable. $this ->prepareInstallDirectory( $filetransfer , $args [ 'install_dir' ]); if ( is_dir ( $args [ 'install_dir' ] . '/' . $this ->name)) { // Remove the existing installed file. $filetransfer ->removeDirectory( $args [ 'install_dir' ] . '/' . $this ->name); } // Copy the directory in place. $filetransfer ->copyDirectory( $this ->source, $args [ 'install_dir' ]); // Make sure what we just installed is readable by the web server. $this ->makeWorldReadable( $filetransfer , $args [ 'install_dir' ] . '/' . $this ->name); // Run the updates. // @todo Decide if we want to implement this. $this ->postUpdate(); // For now, just return a list of links of things to do. return $this ->postUpdateTasks(); } catch (FileTransferException $e ) { throw new UpdaterFileTransferException(t( 'File Transfer failed, reason: @reason' , array ( '@reason' => strtr ( $e ->getMessage(), $e ->arguments)))); } } |
Please login to continue.