You are here

class FileSystem in Drupal 10

Same name in this branch
  1. 10 core/lib/Drupal/Core/File/FileSystem.php \Drupal\Core\File\FileSystem
  2. 10 core/lib/Drupal/Component/FileSystem/FileSystem.php \Drupal\Component\FileSystem\FileSystem
Same name and namespace in other branches
  1. 8 core/lib/Drupal/Component/FileSystem/FileSystem.php \Drupal\Component\FileSystem\FileSystem
  2. 9 core/lib/Drupal/Component/FileSystem/FileSystem.php \Drupal\Component\FileSystem\FileSystem

Provides file system functions.

Hierarchy

Expanded class hierarchy of FileSystem

6 files declare their use of FileSystem
DirectoryTest.php in core/tests/Drupal/KernelTests/Core/File/DirectoryTest.php
FileSystem.php in core/lib/Drupal/Core/File/FileSystem.php
FileSystemTempDirectoryTest.php in core/tests/Drupal/KernelTests/Core/File/FileSystemTempDirectoryTest.php
system.install in core/modules/system/system.install
Install, update and uninstall functions for the system module.
TestDatabase.php in core/lib/Drupal/Core/Test/TestDatabase.php

... See full list

File

core/lib/Drupal/Component/FileSystem/FileSystem.php, line 8

Namespace

Drupal\Component\FileSystem
View source
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;
  }

}

Members