gy-doc-code
[ class tree: gy-doc-code ] [ index: gy-doc-code ] [ all elements ]

Source for file CacheFiles.php

Documentation is available at CacheFiles.php

  1. <?php
  2.  
  3. namespace Gy\Core\Cache;
  4.  
  5. use Gy\Core\AbstractClasses\Cache;
  6.  
  7. if (!defined("GY_CORE"&& (GY_CORE !== true)) die"gy: err include core" );
  8.  
  9. /**
  10.  * cache - класс для работы с кешем
  11.  * для даботы нужен раздел gy/cache/
  12.  */
  13. class CacheFiles extends Cache 
  14. {
  15.     private $urlCache = '/cache/';
  16.     private $urlProject = '/';
  17.     private $data = array();
  18.     private $cacheName = 'noneme';
  19.     private $cacheTime = '';
  20.     private $endUrl = '.php';
  21.  
  22.     /**
  23.      * 
  24.      * @param type $urlProject - путь к проекту
  25.      */
  26.     public function __construct($urlProject)
  27.     {
  28.         $this->urlProject = $urlProject;
  29.     }
  30.  
  31.     /**
  32.      * cacheInit - инициализация кеша, надо проверить есть кеш по заданным параметрам
  33.      * @param string $cacheName 
  34.      * @param int $cacheTime - время кеширования в секундах
  35.      * @return boolean 
  36.      */
  37.     public function cacheInit($cacheName$cacheTime)
  38.     {
  39.         $this->cacheName = $cacheName;
  40.         $this->cacheTime = $cacheTime;
  41.  
  42.         if (file_exists($this->urlProject.$this->urlCache.$this->cacheName.$this->endUrl)) {
  43.             $cacheData array();
  44.             include $this->urlProject.$this->urlCache.$this->cacheName.$this->endUrl;
  45.  
  46.             if (!empty($cacheData)) {
  47.                 $cacheData json_decode($cacheDatatrue);
  48.                 if (((int) $cacheData['createTime'+ (int) $cacheData['cacheTime']time()) {
  49.                     $this->data = $cacheData['data'];
  50.                     unset($cacheData);
  51.                 }
  52.             }
  53.         }
  54.  
  55.         return !empty($this->data);
  56.     }
  57.  
  58.     /**
  59.      * getCacheData - получить данные из кеша
  60.      * @return mixed - может быть массив или одиночное значение любого типа
  61.      */
  62.     public function getCacheData()
  63.     {
  64.         return $this->data;
  65.     }
  66.  
  67.     /**
  68.      * setCacheData - установить данные в кеш
  69.      * @param mixed $data - может быть массив или одиночное значение
  70.      * @return boolean true
  71.      */
  72.     public function setCacheData($data)
  73.     {
  74.         $cacheData array(
  75.             'data' => $data,
  76.             'createTime' => time(),
  77.             'cacheTime' => $this->cacheTime
  78.         );
  79.         if (file_exists($this->urlProject.$this->urlCache.$this->cacheName.$this->endUrl)) {
  80.             file_put_contents(
  81.                 $this->urlProject.$this->urlCache.$this->cacheName.$this->endUrl
  82.                 '<?php $cacheData = '."'"json_encode($cacheData)."';" 
  83.             );
  84.         }
  85.         return true;
  86.     }
  87.  
  88.     /**
  89.      * clearThisCache - удалит текущий кеш (кеш связанный с текущим объектом)
  90.      */
  91.     public function clearThisCache()
  92.     {
  93.         if (file_exists($this->urlProject.$this->urlCache.$this->cacheName.$this->endUrl)) {
  94.             unlink($this->urlProject.$this->urlCache.$this->cacheName.$this->endUrl);
  95.         }
  96.     }
  97.  
  98. }

Documentation generated on Sat, 27 Apr 2024 11:17:28 +0300 by phpDocumentor 1.4.3