/** * Storeへセットする * @param string $key キー名 * @param mixed $value 内容 * @param integer $expiry_time 有効期限 * @return mixed 内容を返す */ public static function set($key, $value, $expiry_time = 2592000) { $id = self::id($key); if (Object::C(__CLASS__)->has_module("store_set")) { return Object::C(__CLASS__)->call_module("store_set", $id, $value, $expiry_time); } $path = File::absolute(App::work("store"), $id); if (!is_string($value)) { list($value, $path) = array(serialize($value), $path . "_s"); } File::gzwrite($path, $value); touch($path, time() + $expiry_time, time() + $expiry_time); return $value; }
private static function parse_package($package_root_path, $base_dir, $package, &$tgz_filename) { $tgz_filename = File::absolute(self::$tgz_dir, str_replace("/", "_", $package) . ".tgz"); if (is_file($tgz_filename)) { return true; } $package_name = basename($base_dir); $search_path = File::absolute($base_dir, preg_replace("/^" . $package_name . "\\//", "", $package)); $base_name = basename($search_path); if (is_file($search_path . ".php")) { $isdir = is_dir($search_path); $tar = File::pack($base_dir, $search_path . ".php", $package_root_path, !$isdir); if ($isdir) { $tar .= File::pack($base_dir, $search_path, $package_root_path); } else { $parent_dir = basename(dirname($search_path)); $parent_search = dirname(dirname($search_path)) . "/" . $parent_dir . ".php"; if (is_file($parent_search)) { $tar .= File::pack($base_dir, $parent_search, $package_root_path); } } File::gzwrite($tgz_filename, $tar); return true; } else { if (is_file($search_path . "/" . $base_name . ".php")) { File::tgz($tgz_filename, $base_dir, $search_path, $package_root_path); return true; } } return false; }