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}) ;"); }