Upgraded drupal core with security updates
[yaffs-website] / web / core / lib / Drupal / Component / FileSystem / FileSystem.php
1 <?php
2
3 namespace Drupal\Component\FileSystem;
4
5 /**
6  * Provides file system functions.
7  */
8 class FileSystem {
9
10   /**
11    * Discovers a writable system-appropriate temporary directory.
12    *
13    * @return string|false
14    *   A string containing the path to the temporary directory, or FALSE if no
15    *   suitable temporary directory can be found.
16    */
17   public static function getOsTemporaryDirectory() {
18     $directories = [];
19
20     // Has PHP been set with an upload_tmp_dir?
21     if (ini_get('upload_tmp_dir')) {
22       $directories[] = ini_get('upload_tmp_dir');
23     }
24
25     // Operating system specific dirs.
26     if (substr(PHP_OS, 0, 3) == 'WIN') {
27       $directories[] = 'c:\\windows\\temp';
28       $directories[] = 'c:\\winnt\\temp';
29     }
30     else {
31       $directories[] = '/tmp';
32     }
33     // PHP may be able to find an alternative tmp directory.
34     $directories[] = sys_get_temp_dir();
35
36     foreach ($directories as $directory) {
37       if (is_dir($directory) && is_writable($directory)) {
38         // Both sys_get_temp_dir() and ini_get('upload_tmp_dir') can return paths
39         // with a trailing directory separator.
40         return rtrim($directory, DIRECTORY_SEPARATOR);
41       }
42     }
43     return FALSE;
44   }
45
46 }