diff options
-rw-r--r-- | README | 12 | ||||
-rw-r--r-- | lib/default.php | 2 | ||||
-rw-r--r-- | lib/router.php | 20 |
3 files changed, 26 insertions, 8 deletions
@@ -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 ======= diff --git a/lib/default.php b/lib/default.php index 7388046d3..029dbb390 100644 --- a/lib/default.php +++ b/lib/default.php @@ -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 ); diff --git a/lib/router.php b/lib/router.php index 4b1fdeb92..eff88bb46 100644 --- a/lib/router.php +++ b/lib/router.php @@ -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); + } + } } } |