public static directoryDiff ( $source, $target ) : string[] | ||
$source | ||
$target | ||
Результат | string[] |
public static function directoryDiff($source, $target)
{
$sourceFiles = self::globr($source, '*');
$targetFiles = self::globr($target, '*');
$sourceFiles = array_map(function ($file) use($source) {
return str_replace($source, '', $file);
}, $sourceFiles);
$targetFiles = array_map(function ($file) use($target) {
return str_replace($target, '', $file);
}, $targetFiles);
$diff = array_diff($targetFiles, $sourceFiles);
return array_values($diff);
}
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); }