Skip to content

Commit 35b2e1c

Browse files
Merge branch '2.7' into 2.8
* 2.7: property constraints can be added in child classes added test for staticClassLoader in LazyLoadingMetadatafactory spelling fixes make sure that null can be the invalid value bumped Symfony version to 2.7.25 updated VERSION for 2.7.24 update CONTRIBUTORS for 2.7.24 updated CHANGELOG for 2.7.24 [FrameworkBundle] Simplify createPackageDefinition fix directory resource considers same timestamp not fresh return false early from directory resource
2 parents 747fa19 + 5a58965 commit 35b2e1c

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

Resource/DirectoryResource.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@ public function isFresh($timestamp)
6868
return false;
6969
}
7070

71-
$newestMTime = filemtime($this->resource);
71+
if ($timestamp < filemtime($this->resource)) {
72+
return false;
73+
}
74+
7275
foreach (new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($this->resource), \RecursiveIteratorIterator::SELF_FIRST) as $file) {
7376
// if regex filtering is enabled only check matching files
7477
if ($this->pattern && $file->isFile() && !preg_match($this->pattern, $file->getBasename())) {
@@ -81,10 +84,13 @@ public function isFresh($timestamp)
8184
continue;
8285
}
8386

84-
$newestMTime = max($file->getMTime(), $newestMTime);
87+
// early return if a file's mtime exceeds the passed timestamp
88+
if ($timestamp < $file->getMTime()) {
89+
return false;
90+
}
8591
}
8692

87-
return $newestMTime < $timestamp;
93+
return true;
8894
}
8995

9096
public function serialize()

Tests/Resource/DirectoryResourceTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,10 @@ public function testIsFreshNewFileWithDifferentPattern()
9696
public function testIsFreshDeleteFile()
9797
{
9898
$resource = new DirectoryResource($this->directory);
99+
$time = time();
100+
sleep(1);
99101
unlink($this->directory.'/tmp.xml');
100-
$this->assertFalse($resource->isFresh(time()), '->isFresh() returns false if an existing file is removed');
102+
$this->assertFalse($resource->isFresh($time), '->isFresh() returns false if an existing file is removed');
101103
}
102104

103105
public function testIsFreshDeleteDirectory()

0 commit comments

Comments
 (0)