We are no longer offering accounts on this server. Consider https://gitlab.freedesktop.org/ as a place to host projects.

Commit bb63fd4b authored by Evan Prodromou's avatar Evan Prodromou

Config flag to disable router caching if needed

parent 8c4e14b5
......@@ -1538,6 +1538,18 @@ external: external links in notices. One of three values: 'sometimes',
nofollowed on profile, notice, and favorites page. Default is
'sometimes'.
router
------
We use a router class for mapping URLs to code. This section controls
how that router works.
cache: whether to cache the router in memcache (or another caching
mechanism). Defaults to true, but may be set to false for
developers (who might be actively adding pages, so won't want the
router cached) or others who see strange behavior. You're unlikely
to need this unless you're a developer.
Plugins
=======
......
......@@ -328,4 +328,6 @@ $default =
array('ssl_cafile' => false, // To enable SSL cert validation, point to a CA bundle (eg '/usr/lib/ssl/certs/ca-certificates.crt')
'curl' => false, // Use CURL backend for HTTP fetches if available. (If not, PHP's socket streams will be used.)
),
'router' =>
array('cache' => true), // whether to cache the router object. Defaults to true, turn off for devel
);
......@@ -127,15 +127,19 @@ class Router
function __construct()
{
if (empty($this->m)) {
$k = self::cacheKey();
$c = Cache::instance();
$m = $c->get($k);
if (!empty($m)) {
$this->m = $m;
} else {
if (!common_config('router', 'cache')) {
$this->m = $this->initialize();
$c->set($k, $this->m);
}
} else {
$k = self::cacheKey();
$c = Cache::instance();
$m = $c->get($k);
if (!empty($m)) {
$this->m = $m;
} else {
$this->m = $this->initialize();
$c->set($k, $this->m);
}
}
}
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment