[Config] updated resources API to be more explicit
This commit is contained in:
parent
092b5dde62
commit
45df2e681e
@ -59,14 +59,14 @@ class DirectoryResource implements ResourceInterface, \Serializable
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the resource has not been updated since the given timestamp.
|
||||
* Returns resource mtime.
|
||||
*
|
||||
* @param integer $timestamp The last time the resource was loaded
|
||||
*
|
||||
* @return Boolean true if the resource has not been updated, false otherwise
|
||||
* @return integer
|
||||
*/
|
||||
public function isFresh($timestamp)
|
||||
public function getModificationTime()
|
||||
{
|
||||
clearstatcache(true, $this->resource);
|
||||
|
||||
if (!is_dir($this->resource)) {
|
||||
return false;
|
||||
}
|
||||
@ -84,10 +84,37 @@ class DirectoryResource implements ResourceInterface, \Serializable
|
||||
continue;
|
||||
}
|
||||
|
||||
clearstatcache(true, (string) $file);
|
||||
$newestMTime = max($file->getMTime(), $newestMTime);
|
||||
}
|
||||
|
||||
return $newestMTime < $timestamp;
|
||||
return $newestMTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the resource has not been updated since the given timestamp.
|
||||
*
|
||||
* @param integer $timestamp The last time the resource was loaded
|
||||
*
|
||||
* @return Boolean true if the resource has not been updated, false otherwise
|
||||
*/
|
||||
public function isFresh($timestamp)
|
||||
{
|
||||
if (!$this->exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->getModificationTime() <= $timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the resource exists in the filesystem.
|
||||
*
|
||||
* @return Boolean
|
||||
*/
|
||||
public function exists()
|
||||
{
|
||||
return file_exists($this->resource);
|
||||
}
|
||||
|
||||
public function serialize()
|
||||
|
@ -52,6 +52,18 @@ class FileResource implements ResourceInterface, \Serializable
|
||||
return $this->resource;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns resource mtime.
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public function getModificationTime()
|
||||
{
|
||||
clearstatcache(true, $this->resource);
|
||||
|
||||
return filemtime($this->resource);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the resource has not been updated since the given timestamp.
|
||||
*
|
||||
@ -61,11 +73,21 @@ class FileResource implements ResourceInterface, \Serializable
|
||||
*/
|
||||
public function isFresh($timestamp)
|
||||
{
|
||||
if (!file_exists($this->resource)) {
|
||||
if (!$this->exists()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return filemtime($this->resource) < $timestamp;
|
||||
return $this->getModificationTime() <= $timestamp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the resource exists in the filesystem.
|
||||
*
|
||||
* @return Boolean
|
||||
*/
|
||||
public function exists()
|
||||
{
|
||||
return file_exists($this->resource);
|
||||
}
|
||||
|
||||
public function serialize()
|
||||
|
@ -34,6 +34,20 @@ interface ResourceInterface
|
||||
*/
|
||||
function isFresh($timestamp);
|
||||
|
||||
/**
|
||||
* Returns resource mtime.
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
function getModificationTime();
|
||||
|
||||
/**
|
||||
* Returns true if the resource exists in the filesystem.
|
||||
*
|
||||
* @return Boolean
|
||||
*/
|
||||
function exists();
|
||||
|
||||
/**
|
||||
* Returns the resource tied to this Resource.
|
||||
*
|
||||
|
@ -118,8 +118,20 @@ class DirectoryResourceTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertFalse($resource->isFresh(time()), '->isFresh() returns false if the whole resource is removed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Symfony\Component\Config\Resource\DirectoryResource::exists
|
||||
*/
|
||||
public function testExists()
|
||||
{
|
||||
$this->assertTrue($this->resource->exists(), '->exists() returns true if the directory still exist');
|
||||
|
||||
$this->removeDirectory($this->directory);
|
||||
$this->assertFalse($this->resource->exists(), '->exists() returns false if the directory does not exist');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Symfony\Component\Config\Resource\DirectoryResource::isFresh
|
||||
* @covers Symfony\Component\Config\Resource\DirectoryResource::getModificationTime
|
||||
*/
|
||||
public function testIsFreshCreateFileInSubdirectory()
|
||||
{
|
||||
|
@ -49,4 +49,23 @@ class FileResourceTest extends \PHPUnit_Framework_TestCase
|
||||
$resource = new FileResource('/____foo/foobar'.rand(1, 999999));
|
||||
$this->assertFalse($resource->isFresh(time()), '->isFresh() returns false if the resource does not exist');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Symfony\Component\Config\Resource\FileResource::exists
|
||||
*/
|
||||
public function testExists()
|
||||
{
|
||||
$this->assertTrue($this->resource->exists(), '->exists() returns true if the resource does exist');
|
||||
|
||||
$resource = new FileResource('/____foo/foobar'.rand(1, 999999));
|
||||
$this->assertFalse($resource->exists(), '->exists() returns false if the resource does not exist');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Symfony\Component\Config\Resource\FileResource::getModificationTime
|
||||
*/
|
||||
public function testGetModificationTime()
|
||||
{
|
||||
$this->assertSame(filemtime($this->resource->getResource()), $this->resource->getModificationTime());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user