summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--index.php2
-rw-r--r--lib/router.php11
-rw-r--r--lib/util.php6
3 files changed, 16 insertions, 3 deletions
diff --git a/index.php b/index.php
index f334e2c34..717b17361 100644
--- 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);
diff --git a/lib/router.php b/lib/router.php
index 6443bf354..d47ad7118 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -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;
}
diff --git a/lib/util.php b/lib/util.php
index a78af8be9..9b38b5596 100644
--- a/lib/util.php
+++ b/lib/util.php
@@ -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')) {