Browse Source

Merge pull request #4750 from klimov-paul/3459-file-cache

Enh #3459 : Added logging of errors, which may occur at `yii\caching\FileCache::gc()`
tags/2.0.0-rc
Qiang Xue 10 years ago
parent
commit
a56490e091
  1. 1
      framework/CHANGELOG.md
  2. 2
      framework/base/ErrorHandler.php
  3. 10
      framework/caching/FileCache.php

1
framework/CHANGELOG.md

@ -123,6 +123,7 @@ Yii Framework 2 Change Log
- Enh #3380: Allow `value` in `defaultValueValidator` to be a closure (Alex-Code)
- Enh #3384: Added callback-style transactions (leandrogehlen, Ragazzo, samdark)
- Enh #3399, #3241: Added support for MS SQL Server older than 2012 (fourteenmeister, samdark)
- Enh #3459: Added logging of errors, which may occur at `yii\caching\FileCache::gc()` (klimov-paul)
- Enh #3472: Added configurable option to encode spaces in dropDownLists and listBoxes (kartik-v)
- Enh #3518: `yii\helpers\Html::encode()` now replaces invalid code sequences with "<EFBFBD>" (DaSourcerer)
- Enh #3520: Added `unlinkAll()`-method to active record to remove all records of a model relation (NmDimas, samdark, cebe)

2
framework/base/ErrorHandler.php

@ -125,6 +125,7 @@ abstract class ErrorHandler extends Component
* @param string $message the error message.
* @param string $file the filename that the error was raised in.
* @param integer $line the line number the error was raised at.
* @return boolean whether the normal error handler continues.
*
* @throws ErrorException
*/
@ -150,6 +151,7 @@ abstract class ErrorHandler extends Component
throw $exception;
}
return false;
}
/**

10
framework/caching/FileCache.php

@ -240,10 +240,16 @@ class FileCache extends Cache
if (is_dir($fullPath)) {
$this->gcRecursive($fullPath, $expiredOnly);
if (!$expiredOnly) {
@rmdir($fullPath);
if (!@rmdir($fullPath)) {
$error = error_get_last();
Yii::warning("Unable to remove directory '{$fullPath}': {$error['message']}", __METHOD__);
}
}
} elseif (!$expiredOnly || $expiredOnly && @filemtime($fullPath) < time()) {
@unlink($fullPath);
if (!@unlink($fullPath)) {
$error = error_get_last();
Yii::warning("Unable to remove file '{$fullPath}': {$error['message']}", __METHOD__);
}
}
}
closedir($handle);

Loading…
Cancel
Save