function PackageManagerFixtureCreator::removeAllExcept

Removes all files in a directory except the ones specified.

Parameters

string $directory: The directory path.

string[] $files_to_keep: The files to not delete.

1 call to PackageManagerFixtureCreator::removeAllExcept()
PackageManagerFixtureCreator::createFixture in core/scripts/PackageManagerFixtureCreator.php
Creates the fixture.

File

core/scripts/PackageManagerFixtureCreator.php, line 99

Class

PackageManagerFixtureCreator
Creates fixture at 'core/modules/package_manager/tests/fixtures/fake_site'.

Code

private static function removeAllExcept(string $directory, array $files_to_keep) : void {
  if (!is_dir($directory)) {
    throw new \LogicException("Expected directory {$directory}");
  }
  $paths_to_remove = glob("{$directory}/*");
  $fs = new Filesystem();
  foreach ($paths_to_remove as $path_to_remove) {
    $base_name = basename($path_to_remove);
    if (!in_array($base_name, $files_to_keep, TRUE)) {
      $fs->remove($path_to_remove);
    }
  }
}

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