You are here

protected static function FileSecurity::writeFile in Drupal 9

Same name in this branch
  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()
Same name and namespace in other branches
  1. 8 composer/Plugin/VendorHardening/FileSecurity.php \Drupal\Composer\Plugin\VendorHardening\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.

2 calls to FileSecurity::writeFile()
FileSecurity::writeHtaccess in composer/Plugin/VendorHardening/FileSecurity.php
Writes an .htaccess file in the given directory, if it doesn't exist.
FileSecurity::writeWebConfig in composer/Plugin/VendorHardening/FileSecurity.php
Writes a web.config file in the given directory, if it doesn't exist.

File

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

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;
}