filename = APPLICATION_PATH.'/../cache/pages/'.$name.$this->extension; } public function exist() { //Fichier inexistant if ( !file_exists($this->filename) ) { return false; } //Ficher timeover if ( $this->timeover($this->filename) ) { return false; } return true; } public function setBlock($block, $array) { //Ajout des blocs sérialisés if(!empty($this->filename)){ $data = $block.' = '.serialize($array); if( !$this->_writefile($data, $this->filename) ) { return true; } } return false; } public function getBlock($block) { $cache = $this->_readfile($this->filename); if(isset($cache[$block])){ //Traitement $block = unserialize($cache[$block]); return $block; } else { return false; } } protected function timeover() { $dateFile = filemtime($this->filename); $now = mktime(date('G'), date('i'), date('s'), date("m") , date("d"), date("Y")); $maxTime = mktime( date('G',$dateFile)+$this->maxTime, date('i',$dateFile), date('s',$dateFile), date("m",$dateFile), date("d",$dateFile), date("Y",$dateFile)); if( $now>$maxTime ) { return true; } return false; } public function deletefile() { if(file_exists($this->file)) return unlink($this->file); else return false; } protected function _readfile() { if ( ($this->filename != $this->file_loaded) ) { $this->file_loaded = $this->filename; if (is_file($this->filename)) { $lines = file($this->filename); foreach ($lines as $line_num => $line) { list($key, $value) = explode(' = ', $line, 2); $cache[$key] = $value; } } $this->cache_loaded = true; } return $cache; } protected function _writefile($line) { $fp = fopen($this->filename,'a'); $result = fwrite($fp,$line."\n"); fclose($fp); return $result; } }