コード例 #1
0
ファイル: FSCache.php プロジェクト: JeCat/framework
 public function setItem($sDataPath, $data, $nExpire = self::expire_default, $fCreateTimeMicroSec = -1)
 {
     $sDataPath = $this->sFolderPrefix . trim($sDataPath, '/');
     if (is_object($data)) {
         $sSerialize = serialize($data);
         $sFilePath = $sDataPath . '.data';
     } else {
         $sSerialize = "<?php\r\nreturn " . var_export($data, true) . ' ;';
         $sFilePath = $sDataPath . '.php';
     }
     $sDataFolder = dirname($sFilePath);
     if (!is_dir($sDataFolder) and !Folder::mkdir($sDataFolder, 0775, true)) {
         return;
     }
     file_put_contents($sFilePath, $sSerialize);
     // create time
     if ($fCreateTimeMicroSec < 0) {
         $fCreateTimeMicroSec = microtime(true) + 600;
     }
     // expire time
     if ($nExpire === Cache::expire_allways) {
         $nExpireSec = 0;
     } else {
         if ($nExpire === Cache::$expire_default) {
             $nExpireSec = ceil($fCreateTimeMicroSec) + Cache::$expire_default;
         } else {
             $nExpireSec = ceil($fCreateTimeMicroSec) + $nExpire;
         }
     }
     file_put_contents($sDataPath . '.time', "<?php return array({$fCreateTimeMicroSec},{$nExpireSec}) ;");
 }