Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Component/FileSystem/FileSystem.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Component/FileSystem/FileSystem.php Wed Nov 29 16:09:58 2017 +0000 @@ -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 = []; + + // 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; + } + +}