/**
 * Sets up LearnableConformity tests
 */
function setupLearnableConformity(Benchmark $benchmark, $routes, $args)
{
    $argString = implode('/', array_map(function ($i) {
        return "{arg{$i}}";
    }, range(1, $args)));
    $str = $firstStr = $lastStr = '';
    $router = new \Conformity\Router\LearnableCachedRouter(new \Conformity\Router\LearnableFileCache(__DIR__ . '/files/first-route-conformity.php'));
    for ($i = 0, $str = 'a'; $i < $routes; $i++, $str++) {
        list($pre, $post) = getRandomParts();
        $str = '/' . $pre . '/' . $argString . '/' . $post;
        if (0 === $i) {
            $firstStr = str_replace(array('{', '}'), '', $str);
        }
        $lastStr = str_replace(array('{', '}'), '', $str);
        $router->get($str, 'handler' . $i);
    }
    $benchmark->register(sprintf('Conformity Learnable - first route (%s routes)', $routes), function () use($router, $firstStr) {
        $route = $router->dispatch('GET', $firstStr);
    });
}
Exemplo n.º 2
0
<?php

require __DIR__ . '/vendor/autoload.php';
$router = new \Conformity\Router\LearnableCachedRouter(new \Conformity\Router\LearnableArrayCache());
$router->addMatcher('numeric', 'is_numeric');
$router->match('GET', '/test', 'handler');
$router->match('GET', 'testing', 'handler');
$router->get('/gettest', 'handler');
$router->post('posttest', 'handler');
$router->put('/puttest', 'handler');
$router->patch('/patchtest', 'handler');
$router->delete('/deletetest', 'handler');
$router->any('/anytest', 'handler');
$router->get('/multiple/segments/test', 'handler');
$router->get('/multiple/segments/test/{optional?}', 'is_numeric');
$router->get('http://{subdomain|numeric}.test.com/multiple/segments/test/{optional?}', 'is_numeric');
$router->get('/multiple/{inmiddle}/test/{optional}/{segments?}', 'handler');
$router->get('/a/test/{inmiddle}/optional-{name}.{extension}', 'handler');
$router->get('/test/{inmiddle}/optional-{name}.{extension}', ['name' => 'testname', 'callback' => 'handler']);
print_r($router->dispatch('GET', '/multiple/segments/test'));
print_r($router->dispatch('GET', '/multiple/segments/test/var'));
print_r($router->dispatch('GET', '/a/test/with/optional-lee.json'));
print_r($router->dispatch('GET', '/multiple/segments/test/hey', 'http://2.test.com'));
//print_r($router->dispatch('GET', '/multiple/segments/test/10/'));
print_r($router);