/** * set cache * * @param Charcoal_String $cache_key identify cache * @param array $data config data */ public function setCache(Charcoal_String $cache_key, array $data) { $cache_dir = $this->getSandbox()->getProfile()->getString('CACHE_DIR'); $cache_dir = new Charcoal_File(s($cache_dir)); $cache_dir_mode = Charcoal_Profile::getString(s('CACHE_DIR_MODE'), s('777')); $cache_dir->makeDirectory($cache_dir_mode, b(TRUE)); if (!$cache_dir->isDir()) { return; } $cache_file = new Charcoal_File(s($cache_key), $cache_dir); $contents = serialize($data); $fp = fopen($cache_file, 'wb'); if ($fp) { if (flock($fp, LOCK_EX)) { fwrite($fp, $contents); fflush($fp); flock($fp, LOCK_UN); } $ret = fclose($fp); } }