Issue #2794249 by alexpott: Move file_directory_os_temp() to a class in Drupal\Component\FileSystem
parent
19387f80d5
commit
b39b29ad14
|
@ -5,6 +5,7 @@
|
|||
* API for handling file uploads and server file management.
|
||||
*/
|
||||
|
||||
use Drupal\Component\FileSystem\FileSystem as ComponentFileSystem;
|
||||
use Drupal\Component\Utility\Unicode;
|
||||
use Drupal\Component\Utility\UrlHelper;
|
||||
use Drupal\Component\PhpStorage\FileStorage;
|
||||
|
@ -1189,7 +1190,7 @@ function file_directory_temp() {
|
|||
if (empty($temporary_directory)) {
|
||||
// Needs set up.
|
||||
$config = \Drupal::configFactory()->getEditable('system.file');
|
||||
$temporary_directory = file_directory_os_temp();
|
||||
$temporary_directory = ComponentFileSystem::getOsTemporaryDirectory();
|
||||
|
||||
if (empty($temporary_directory)) {
|
||||
// If no directory has been found default to 'files/tmp'.
|
||||
|
@ -1214,34 +1215,12 @@ function file_directory_temp() {
|
|||
*
|
||||
* @return mixed
|
||||
* A string containing the path to the temporary directory.
|
||||
*
|
||||
* @deprecated in Drupal 8.3.x-dev, will be removed before Drupal 9.0.0.
|
||||
* Use \Drupal\Component\FileSystem\FileSystem::getOsTemporaryDirectory().
|
||||
*/
|
||||
function file_directory_os_temp() {
|
||||
$directories = array();
|
||||
|
||||
// Has PHP been set with an upload_tmp_dir?
|
||||
if (ini_get('upload_tmp_dir')) {
|
||||
$directories[] = ini_get('upload_tmp_dir');
|
||||
}
|
||||
|
||||
// Operating system specific dirs.
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||
$directories[] = 'c:\\windows\\temp';
|
||||
$directories[] = 'c:\\winnt\\temp';
|
||||
}
|
||||
else {
|
||||
$directories[] = '/tmp';
|
||||
}
|
||||
// PHP may be able to find an alternative tmp directory.
|
||||
$directories[] = sys_get_temp_dir();
|
||||
|
||||
foreach ($directories as $directory) {
|
||||
if (is_dir($directory) && is_writable($directory)) {
|
||||
// Both sys_get_temp_dir() and ini_get('upload_tmp_dir') can return paths
|
||||
// with a trailing directory separator.
|
||||
return rtrim($directory, DIRECTORY_SEPARATOR);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
return ComponentFileSystem::getOsTemporaryDirectory();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Component\FileSystem;
|
||||
|
||||
/**
|
||||
* Provides file system functions.
|
||||
*/
|
||||
class FileSystem {
|
||||
|
||||
/**
|
||||
* Discovers a writable system-appropriate temporary directory.
|
||||
*
|
||||
* @return string|false
|
||||
* A string containing the path to the temporary directory, or FALSE if no
|
||||
* suitable temporary directory can be found.
|
||||
*/
|
||||
public static function getOsTemporaryDirectory() {
|
||||
$directories = array();
|
||||
|
||||
// Has PHP been set with an upload_tmp_dir?
|
||||
if (ini_get('upload_tmp_dir')) {
|
||||
$directories[] = ini_get('upload_tmp_dir');
|
||||
}
|
||||
|
||||
// Operating system specific dirs.
|
||||
if (substr(PHP_OS, 0, 3) == 'WIN') {
|
||||
$directories[] = 'c:\\windows\\temp';
|
||||
$directories[] = 'c:\\winnt\\temp';
|
||||
}
|
||||
else {
|
||||
$directories[] = '/tmp';
|
||||
}
|
||||
// PHP may be able to find an alternative tmp directory.
|
||||
$directories[] = sys_get_temp_dir();
|
||||
|
||||
foreach ($directories as $directory) {
|
||||
if (is_dir($directory) && is_writable($directory)) {
|
||||
// Both sys_get_temp_dir() and ini_get('upload_tmp_dir') can return paths
|
||||
// with a trailing directory separator.
|
||||
return rtrim($directory, DIRECTORY_SEPARATOR);
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
}
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
use Drupal\Component\Utility\Crypt;
|
||||
use Drupal\Component\Utility\Environment;
|
||||
use Drupal\Component\FileSystem\FileSystem;
|
||||
use Drupal\Component\Utility\OpCodeCache;
|
||||
use Drupal\Core\Path\AliasStorage;
|
||||
use Drupal\Core\Url;
|
||||
|
@ -541,7 +542,7 @@ function system_requirements($phase) {
|
|||
else {
|
||||
// If the temporary directory is not overridden use an appropriate
|
||||
// temporary path for the system.
|
||||
$directories[] = file_directory_os_temp();
|
||||
$directories[] = FileSystem::getOsTemporaryDirectory();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue