function update_manager_file_get in Drupal 9
Same name and namespace in other branches
- 8 core/modules/update/update.manager.inc \update_manager_file_get()
- 7 modules/update/update.manager.inc \update_manager_file_get()
Copies a file from the specified URL to the temporary directory for updates.
Returns the local path if the file has already been downloaded.
Parameters
$url: The URL of the file on the server.
Return value
string Path to local file.
2 calls to update_manager_file_get()
- UpdateManagerInstall::submitForm in core/
modules/ update/ src/ Form/ UpdateManagerInstall.php - Form submission handler.
- update_manager_batch_project_get in core/
modules/ update/ update.manager.inc - Implements callback_batch_operation().
File
- core/
modules/ update/ update.manager.inc, line 217 - Administrative screens and processing functions of the Update Manager module.
Code
function update_manager_file_get($url) {
$parsed_url = parse_url($url);
$remote_schemes = [
'http',
'https',
'ftp',
'ftps',
'smb',
'nfs',
];
if (!isset($parsed_url['scheme']) || !in_array($parsed_url['scheme'], $remote_schemes)) {
// This is a local file, just return the path.
return \Drupal::service('file_system')
->realpath($url);
}
// Check the cache and download the file if needed.
$cache_directory = _update_manager_cache_directory();
$local = $cache_directory . '/' . \Drupal::service('file_system')
->basename($parsed_url['path']);
if (!file_exists($local) || update_delete_file_if_stale($local)) {
return system_retrieve_file($url, $local, FALSE, FileSystemInterface::EXISTS_REPLACE);
}
else {
return $local;
}
}