/includes/patTemplate/patTemplate/TemplateCache/File.php
https://github.com/Arkadiy-Sedelnikov/joostina-1.4 · PHP · 64 lines · 47 code · 4 blank · 13 comment · 9 complexity · ad757cf97f92ae07f1f8b63595154562 MD5 · raw file
- <?php
- /**
- * @package Joostina
- * @copyright ��������� ����� (C) 2008 Joostina team. ��� ����� ��������.
- * @license �������� http://www.gnu.org/licenses/gpl-2.0.htm GNU/GPL, ��� help/license.php
- * Joostina! - ��������� ����������� ����������� ���������������� �� �������� �������� GNU/GPL
- * ��� ��������� ���������� � ������������ ����������� � ��������� �� ��������� �����, �������� ���� help/copyright.php.
- * @version 3.1.0
- * @package patTemplate
- * @author Stephan Schmidt <schst@php.net>
- * @license LGPL
- * @link http://www.php-tools.net
- */
- // ������ ������� �������
- defined('_JLINDEX') or die();
- class patTemplate_TemplateCache_File extends patTemplate_TemplateCache{
- var $_params = array('cacheFolder' => './cache', 'lifetime' => 'auto', 'prefix' => '', 'filemode' => null);
- function load($key, $modTime = -1){
- $filename = $this->_getCachefileName($key);
- if(!file_exists($filename) || !is_readable($filename)){
- return false;
- }
- $generatedOn = filemtime($filename);
- $ttl = $this->getParam('lifetime');
- if($ttl == 'auto'){
- if($modTime < 1){
- return false;
- }
- if($modTime > $generatedOn){
- return false;
- }
- return unserialize(file_get_contents($filename));
- } elseif(is_int($ttl)){
- if($generatedOn + $ttl < time()){
- return false;
- }
- return unserialize(file_get_contents($filename));
- }
- return false;
- }
- function write($key, $templates){
- $cacheFile = $this->_getCachefileName($key);
- $fp = @fopen($cacheFile, 'w');
- if(!$fp){
- return false;
- }
- flock($fp, LOCK_EX);
- fputs($fp, serialize($templates));
- flock($fp, LOCK_UN);
- $filemode = $this->getParam('filemode');
- if($filemode !== null){
- chmod($cacheFile, $filemode);
- }
- return true;
- }
- function _getCachefileName($key){
- return $this->getParam('cacheFolder') . '/' . $this->getParam('prefix') . $key . '.cache';
- }
- }
- ?>