mirror of
https://github.com/YGGverse/bdoku.git
synced 2026-03-31 17:55:36 +00:00
add memory cache for compiled pages
This commit is contained in:
parent
e029894909
commit
3f2bc0b0da
3 changed files with 44 additions and 5 deletions
|
|
@ -6,7 +6,8 @@
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
"yggverse/titan-ii": "^1.0",
|
"yggverse/titan-ii": "^1.0",
|
||||||
"yggverse/gemini": "dev-main"
|
"yggverse/gemini": "dev-main",
|
||||||
|
"yggverse/cache": "^0.4.0"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,16 @@
|
||||||
"port":1965
|
"port":1965
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"memcached":
|
||||||
|
{
|
||||||
|
"server":
|
||||||
|
{
|
||||||
|
"host":"127.0.0.1",
|
||||||
|
"port":11211,
|
||||||
|
"timeout":3600,
|
||||||
|
"namespace":""
|
||||||
|
}
|
||||||
|
},
|
||||||
"dokuwiki":
|
"dokuwiki":
|
||||||
{
|
{
|
||||||
"uri":
|
"uri":
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,14 @@ $config = json_decode(
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Init memory
|
||||||
|
$memory = new \Yggverse\Cache\Memory(
|
||||||
|
$config->memcached->server->host,
|
||||||
|
$config->memcached->server->port,
|
||||||
|
$config->memcached->server->namespace,
|
||||||
|
$config->memcached->server->timeout
|
||||||
|
);
|
||||||
|
|
||||||
// Init filesystem
|
// Init filesystem
|
||||||
$filesystem = new \Yggverse\Gemini\Dokuwiki\Filesystem(
|
$filesystem = new \Yggverse\Gemini\Dokuwiki\Filesystem(
|
||||||
sprintf(
|
sprintf(
|
||||||
|
|
@ -82,6 +90,7 @@ $server->setHandler(
|
||||||
function (\Yggverse\TitanII\Request $request): \Yggverse\TitanII\Response
|
function (\Yggverse\TitanII\Request $request): \Yggverse\TitanII\Response
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
global $memory;
|
||||||
global $filesystem;
|
global $filesystem;
|
||||||
|
|
||||||
$response = new \Yggverse\TitanII\Response();
|
$response = new \Yggverse\TitanII\Response();
|
||||||
|
|
@ -125,6 +134,16 @@ $server->setHandler(
|
||||||
{
|
{
|
||||||
if ($path = $filesystem->getPagePathByUri($matches[1]))
|
if ($path = $filesystem->getPagePathByUri($matches[1]))
|
||||||
{
|
{
|
||||||
|
// Check for cached results
|
||||||
|
if ($content = $memory->get($path))
|
||||||
|
{
|
||||||
|
$response->setContent(
|
||||||
|
$content
|
||||||
|
);
|
||||||
|
|
||||||
|
return $response;
|
||||||
|
}
|
||||||
|
|
||||||
// Init reader
|
// Init reader
|
||||||
$reader = new \Yggverse\Gemini\Dokuwiki\Reader();
|
$reader = new \Yggverse\Gemini\Dokuwiki\Reader();
|
||||||
|
|
||||||
|
|
@ -192,12 +211,21 @@ $server->setHandler(
|
||||||
// Append about info
|
// Append about info
|
||||||
$lines[] = $config->string->about;
|
$lines[] = $config->string->about;
|
||||||
|
|
||||||
|
// Merge lines
|
||||||
|
$content = implode(
|
||||||
|
PHP_EOL,
|
||||||
|
$lines
|
||||||
|
);
|
||||||
|
|
||||||
|
// Cache results
|
||||||
|
$memory->set(
|
||||||
|
$path,
|
||||||
|
$content
|
||||||
|
);
|
||||||
|
|
||||||
// Response
|
// Response
|
||||||
$response->setContent(
|
$response->setContent(
|
||||||
implode(
|
$content
|
||||||
PHP_EOL,
|
|
||||||
$lines
|
|
||||||
)
|
|
||||||
);
|
);
|
||||||
|
|
||||||
return $response;
|
return $response;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue