Removes all files and directories that are present in the target directory but are not in the source directory.
public static unlinkTargetFilesNotPresentInSource ( string $source, string $target ) | ||
$source | string | Path to the source directory |
$target | string | Path to the target |
public function removeGoneFiles($source, $target) { Filesystem::unlinkTargetFilesNotPresentInSource($source . '/core', $target . '/core'); foreach ($this->getPluginsFromDirectoy($source) as $pluginDir) { Filesystem::unlinkTargetFilesNotPresentInSource($source . $pluginDir, $target . $pluginDir); } }
public function test_unlinkTargetFilesNotPresentInSource_shouldUnlinkAllTargetFiles_IfSourceIsEmpty() { $source = $this->createEmptySource(); $target = $this->createTargetFiles(); // make sure there is a difference between those folders $result = Filesystem::directoryDiff($source, $target); $this->assertNotEmpty($result); Filesystem::unlinkTargetFilesNotPresentInSource($source, $target); // make sure there is no longer a difference $result = Filesystem::directoryDiff($source, $target); $this->assertEquals(array(), $result); $result = Filesystem::directoryDiff($target, $source); $this->assertEquals(array(), $result); }