]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Use a router singleton
authorEvan Prodromou <evan@controlyourself.ca>
Wed, 11 Feb 2009 05:45:11 +0000 (00:45 -0500)
committerEvan Prodromou <evan@controlyourself.ca>
Wed, 11 Feb 2009 05:45:11 +0000 (00:45 -0500)
index.php
lib/router.php
lib/util.php

index f334e2c3454e630d4dfb43386e81ab7df994012c..717b17361d2f7f60c343cf9c9f3ad3e33b11632c 100644 (file)
--- a/index.php
+++ b/index.php
@@ -51,7 +51,7 @@ function main() {
 
     $path = getPath($_REQUEST);
 
-    $r = new Router();
+    $r = Router::get();
 
     $args = $r->map($path);
 
index 6443bf3541967ca63efe722f34b1a71f1c80659b..d47ad7118332328cfd0208f152013ea950ce6fed 100644 (file)
@@ -48,6 +48,15 @@ require_once 'Net/URL/Mapper.php';
 class Router
 {
     static $m = null;
+    static $inst = null;
+
+    static function get()
+    {
+        if (!Router::$inst) {
+            Router::$inst = new Router();
+        }
+        return Router::$inst;
+    }
 
     function __construct()
     {
@@ -344,7 +353,7 @@ class Router
         $action_arg = array('action' => $action);
 
         if ($args) {
-            $args = array_merge($args, $action_arg);
+            $args = array_merge($action_arg, $args);
         } else {
             $args = $action_arg;
         }
index a78af8be96e05064485d7b2231768ccb723720a4..9b38b55961c071fb417d1ef6ad37c2dcb8e686cb 100644 (file)
@@ -669,8 +669,12 @@ function common_relative_profile($sender, $nickname, $dt=null)
 
 function common_local_url($action, $args=null, $fragment=null)
 {
-    $r = new Router();
+    common_debug("Action = $action, args = " . (($args) ? '(' . implode($args, ',') . ')' : $args) . ", fragment = $fragment");
+    $r = Router::get();
+    $start = microtime();
     $path = $r->build($action, $args, $fragment);
+    $end = microtime();
+    common_debug("Pathbuilding took " . ($end - $start));
     if ($path) {
     }
     if (common_config('site','fancy')) {