/** * 関数を呼び出す * * @param mixed $parameter * @param mixed $... * @return mixed * @see P2KeyValueStore_FunctionCache_Proxy::invoke() */ public function __invoke() { $parameters = $this->_prependedParameters; $arguments = func_get_args(); foreach ($arguments as $parameter) { $parameters[] = $parameter; } foreach ($this->_appendedParameters as $parameter) { $parameters[] = $parameter; } $oldLifeTime = $this->_cache->setLifeTime($this->_lifeTime); $result = $this->_cache->invoke($this->_function, $parameters); $this->_cache->setLifeTime($oldLifeTime); return $result; }
} elseif ($cache_clear == 'gc') { $kvs->gc($cache_lifetime); $optimize_db = true; } if ($optimize_db) { // キャッシュをVACUUM,REINDEX $kvs->optimize(); // SQLiteならVACUUMを実行 if ($db_class == 'db_sqlite') { $result = $db->query('VACUUM'); if (DB::isError($result)) { p2die($result->getMessage()); } } } $cache = new P2KeyValueStore_FunctionCache($kvs, $cache_lifetime); $imageInfo_getExtraInfo = $cache->createProxy('ImageCache2_ImageInfo::getExtraInfo'); $imageInfo_getExifData = $cache->createProxy('ImageCache2_ImageInfo::getExifData'); $editForm_imgManager = $cache->createProxy('ImageCache2_EditForm::imgManager'); $use_cache = true; } else { $use_cache = false; } // }}} // {{{ prepare (Form & Template) // ページ遷移用フォームを設定 // ページ遷移はGETで行うが、画像情報の更新はPOSTで行うのでどちらでも受け入れるようにする // (レンダリング前に $qf->updateAttributes(array('method' => 'get')); とする) $_attribures = array('accept-charset' => 'UTF-8,Shift_JIS'); $_method = $_SERVER['REQUEST_METHOD'] == 'GET' ? 'get' : 'post'; $qf = new HTML_QuickForm('go', $_method, $_SERVER['SCRIPT_NAME'], '_self', $_attribures);