From d45b5615d48bff5373a6cda0728cb26332c3d962 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Tue, 20 Jan 2015 19:19:55 +0100 Subject: One class per file: framework/Caching/ --- framework/Caching/TFileCacheDependency.php | 73 ++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 framework/Caching/TFileCacheDependency.php (limited to 'framework/Caching/TFileCacheDependency.php') diff --git a/framework/Caching/TFileCacheDependency.php b/framework/Caching/TFileCacheDependency.php new file mode 100644 index 00000000..4a4694bd --- /dev/null +++ b/framework/Caching/TFileCacheDependency.php @@ -0,0 +1,73 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2014 PradoSoft + * @license http://www.pradosoft.com/license/ + * @package System.Caching + */ + + +/** + * TFileCacheDependency class. + * + * TFileCacheDependency performs dependency checking based on the + * last modification time of the file specified via {@link setFileName FileName}. + * The dependency is reported as unchanged if and only if the file's + * last modification time remains unchanged. + * + * @author Qiang Xue + * @package System.Caching + * @since 3.1.0 + */ +class TFileCacheDependency extends TCacheDependency +{ + private $_fileName; + private $_timestamp; + + /** + * Constructor. + * @param string name of the file whose change is to be checked. + */ + public function __construct($fileName) + { + $this->setFileName($fileName); + } + + /** + * @return string the name of the file whose change is to be checked + */ + public function getFileName() + { + return $this->_fileName; + } + + /** + * @param string the name of the file whose change is to be checked + */ + public function setFileName($value) + { + $this->_fileName=$value; + $this->_timestamp=@filemtime($value); + } + + /** + * @return int the last modification time of the file + */ + public function getTimestamp() + { + return $this->_timestamp; + } + + /** + * Performs the actual dependency checking. + * This method returns true if the last modification time of the file is changed. + * @return boolean whether the dependency is changed or not. + */ + public function getHasChanged() + { + return @filemtime($this->_fileName)!==$this->_timestamp; + } +} \ No newline at end of file -- cgit v1.2.3