function FileSecurity::writeFile

Same name in this branch
  1. 11.x core/lib/Drupal/Component/FileSecurity/FileSecurity.php \Drupal\Component\FileSecurity\FileSecurity::writeFile()
Same name and namespace in other branches
  1. 9 composer/Plugin/VendorHardening/FileSecurity.php \Drupal\Composer\Plugin\VendorHardening\FileSecurity::writeFile()
  2. 9 core/lib/Drupal/Component/FileSecurity/FileSecurity.php \Drupal\Component\FileSecurity\FileSecurity::writeFile()
  3. 8.9.x composer/Plugin/VendorHardening/FileSecurity.php \Drupal\Composer\Plugin\VendorHardening\FileSecurity::writeFile()
  4. 8.9.x core/lib/Drupal/Component/FileSecurity/FileSecurity.php \Drupal\Component\FileSecurity\FileSecurity::writeFile()
  5. 10 composer/Plugin/VendorHardening/FileSecurity.php \Drupal\Composer\Plugin\VendorHardening\FileSecurity::writeFile()
  6. 10 core/lib/Drupal/Component/FileSecurity/FileSecurity.php \Drupal\Component\FileSecurity\FileSecurity::writeFile()

Writes the contents to the file in the given directory.

Parameters

string $directory: The directory to write to.

string $filename: The file name.

string $contents: The file contents.

bool $force: TRUE if we should force the write over an existing file.

Return value

bool TRUE if writing the file was successful.

1 call to FileSecurity::writeFile()
FileSecurity::writeHtaccess in composer/Plugin/VendorHardening/FileSecurity.php
Writes an .htaccess file in the given directory, if it doesn't exist.

File

composer/Plugin/VendorHardening/FileSecurity.php, line 118

Class

FileSecurity
Provides file security functions.

Namespace

Drupal\Composer\Plugin\VendorHardening

Code

protected static function writeFile($directory, $filename, $contents, $force) {
    $file_path = $directory . DIRECTORY_SEPARATOR . $filename;
    // Don't overwrite if the file exists unless forced.
    if (file_exists($file_path) && !$force) {
        return TRUE;
    }
    // Try to write the file. This can fail if concurrent requests are both
    // trying to write a the same time.
    if (@file_put_contents($file_path, $contents)) {
        return @chmod($file_path, 0444);
    }
    return FALSE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.