/** * Sets up Pux tests */ function setupPux(Benchmark $benchmark, $routes, $args) { $name = extension_loaded('pux') ? 'Pux ext' : 'Pux PHP'; $argString = implode('/', array_map(function ($i) { return ':arg' . $i; }, range(1, $args))); $str = $firstStr = $lastStr = ''; $router = new \Pux\Mux(); for ($i = 0; $i < $routes; $i++) { list($pre, $post) = getRandomParts(); $str = '/' . $pre . '/' . $argString . '/' . $post; if (0 === $i) { $firstStr = str_replace(':', '', $str); } $lastStr = str_replace(':', '', $str); $router->add($str, 'handler' . $i); } $benchmark->register(sprintf('%s - last route (%s routes)', $name, $routes), function () use($router, $lastStr) { $route = $router->match($lastStr); }); $benchmark->register(sprintf('%s - unknown route (%s routes)', $name, $routes), function () use($router) { $route = $router->match('/not-even-real'); }); }