]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Config flag to disable router caching if needed
authorEvan Prodromou <evan@status.net>
Mon, 6 Dec 2010 22:19:41 +0000 (17:19 -0500)
committerEvan Prodromou <evan@status.net>
Mon, 6 Dec 2010 22:21:01 +0000 (17:21 -0500)
README
lib/default.php
lib/router.php

diff --git a/README b/README
index b36d8b745402146c9c5d5c7627386fe22cd762de..5731ab3433283aa38ef49f375e3fde4fd712ab0c 100644 (file)
--- a/README
+++ b/README
@@ -1540,6 +1540,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
 =======
 
index 6c8b0392747f70e063fb2186e23f7576bb50a4b8..85d27f5220b2c28722dcfcd7678fdd7041c214b4 100644 (file)
@@ -324,4 +324,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
         );
index 8d2fbf6cd20a673629078b9d1f11f11505ecc73b..fb33125ab83ae54fc34d97069d46b088e99992c2 100644 (file)
@@ -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);
+               }
+           }
         }
     }