You are here

protected function FeaturesGenerationWrite::generateFile in Features 8.4

Same name and namespace in other branches
  1. 8.3 src/Plugin/FeaturesGeneration/FeaturesGenerationWrite.php \Drupal\features\Plugin\FeaturesGeneration\FeaturesGenerationWrite::generateFile()

Writes a file to the file system, creating its directory as needed.

Parameters

string $directory: The extension's directory.

array $file: Array with the following keys:

  • 'filename': the name of the file.
  • 'subdirectory': any subdirectory of the file within the extension directory.
  • 'string': the contents of the file.

Throws

Exception

1 call to FeaturesGenerationWrite::generateFile()
FeaturesGenerationWrite::generatePackage in src/Plugin/FeaturesGeneration/FeaturesGenerationWrite.php
Writes a package or profile's files to the file system.

File

src/Plugin/FeaturesGeneration/FeaturesGenerationWrite.php, line 225

Class

FeaturesGenerationWrite
Class for writing packages to the local file system.

Namespace

Drupal\features\Plugin\FeaturesGeneration

Code

protected function generateFile($directory, array $file) {
  if (!empty($file['subdirectory'])) {
    $directory .= '/' . $file['subdirectory'];
  }
  $directory = $this->root . '/' . $directory;
  if (!is_dir($directory)) {
    if ($this->fileSystem
      ->mkdir($directory, NULL, TRUE) === FALSE) {
      throw new \Exception($this
        ->t('Failed to create directory @directory.', [
        '@directory' => $directory,
      ]));
    }
  }
  if (file_put_contents($directory . '/' . $file['filename'], $file['string']) === FALSE) {
    throw new \Exception($this
      ->t('Failed to write file @filename.', [
      '@filename' => $file['filename'],
    ]));
  }
}