mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 03:18:26 +00:00
Fixed issue where incorrect cached filesize was reported when appending to file.
This commit is contained in:
parent
ed435870ae
commit
ba56fb7064
2 changed files with 14 additions and 3 deletions
|
@ -433,16 +433,24 @@ class FileTest extends CakeTestCase {
|
|||
$TmpFile = new File($tmpFile);
|
||||
$this->assertFalse(file_exists($tmpFile));
|
||||
|
||||
$fragments = array('CakePHP\'s', ' test suite', ' was here ...', '');
|
||||
$fragments = array('CakePHP\'s', ' test suite', ' was here ...');
|
||||
$data = null;
|
||||
$size = 0;
|
||||
foreach ($fragments as $fragment) {
|
||||
$r = $TmpFile->append($fragment);
|
||||
$this->assertTrue($r);
|
||||
$this->assertTrue(file_exists($tmpFile));
|
||||
$data = $data . $fragment;
|
||||
$this->assertEquals($data, file_get_contents($tmpFile));
|
||||
$newSize = $TmpFile->size();
|
||||
$this->assertTrue($newSize > $size);
|
||||
$size = $newSize;
|
||||
$TmpFile->close();
|
||||
}
|
||||
|
||||
$TmpFile->append('');
|
||||
$this->assertEquals($data, file_get_contents($tmpFile));
|
||||
$TmpFile->close();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -130,7 +130,6 @@ class File {
|
|||
if (!$force && is_resource($this->handle)) {
|
||||
return true;
|
||||
}
|
||||
clearstatcache();
|
||||
if ($this->exists() === false) {
|
||||
if ($this->create() === false) {
|
||||
return false;
|
||||
|
@ -278,7 +277,6 @@ class File {
|
|||
* @link http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#File::delete
|
||||
*/
|
||||
public function delete() {
|
||||
clearstatcache();
|
||||
if (is_resource($this->handle)) {
|
||||
fclose($this->handle);
|
||||
$this->handle = null;
|
||||
|
@ -410,6 +408,11 @@ class File {
|
|||
* @link http://book.cakephp.org/2.0/en/core-utility-libraries/file-folder.html#File::exists
|
||||
*/
|
||||
public function exists() {
|
||||
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
|
||||
clearstatcache(true, $this->path);
|
||||
} else {
|
||||
clearstatcache();
|
||||
}
|
||||
return (file_exists($this->path) && is_file($this->path));
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue