Sprawdź Pux (https://github.com/c9s/Pux), który jest ukierunkowany na ekstremalnie wysoką wydajność, zerową zależność, zero narzutów (z obsługą rozszerzenia C). zapewniając jednocześnie dobrą wydajność, Pux zapewnia również Sinatra-jak API, aby zdefiniować własne ścieżki routingu:
$mux = new Pux\Mux;
$mux->any('/product', ['ProductController','listAction']);
$mux->get('/product/:id', ['ProductController','itemAction'] , [
'require' => [ 'id' => '\d+', ],
'default' => [ 'id' => '1', ]
]);
$mux->post('/product/:id', ['ProductController','updateAction'] , [
'require' => [ 'id' => '\d+', ],
'default' => [ 'id' => '1', ]
]);
$mux->delete('/product/:id', ['ProductController','deleteAction'] , [
'require' => [ 'id' => '\d+', ],
'default' => [ 'id' => '1', ]
]);
$route = $mux->dispatch('/product/1');
Benchmark wynik:
- 48.5x szybsze niż "symfony/routing statyczny" w wysyłanie tras. (z zainstalowanym dodatkiem pux)
- 31x szybciej niż "symfony/routing" w wysyłaniu wyrażeń regularnych. (z zainstalowanym dodatkiem pux)
- 69x szybciej niż "klein" (z zainstalowanym rozszerzeniem pux).
n=10000
Runing php array - . 138796.45654569/s
Runing pux - . 124982.98519026/s
Runing klein - . 1801.5070399717/s
Runing ham - . 13566.734991391/s
Runing aura - . 39657.986477172/s
Runing symfony/routing - . 1934.2415677861/s
Rate Mem php array pux aura ham symfony/routing klein
php array 138.8K/s 0B ---90% -28% -9% -1% -1%
pux 124.98K/s 0B 111% -- -31%-10% -1% -1%
aura 39.66K/s 0B 349%315% ---34% -4% -4%
ham 13.57K/s 0B 1023%921% 292% -- -14% -13%
symfony/routing 1.93K/s 786K 7175%6461%2050%701% -- -93%
klein 1.8K/s 262K 7704%6937%2201%753% 107% --
================================== Bar Chart ==================================
php array 138.8K/s | ████████████████████████████████████████████████████████████ |
pux 124.98K/s | ██████████████████████████████████████████████████████ |
aura 39.66K/s | █████████████████ |
ham 13.57K/s | █████ |
symfony/routing 1.93K/s | |
klein 1.8K/s | |
============================== System Information ==============================
PHP Version: 5.5.6
CPU Brand String: Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz
With XDebug Extension.
Pux stara się nie zużywają czas obliczeń, aby zbudować wszystkie trasy dynamicznie (jak Symfony/Routing). Zamiast tego, Pux kompiluje twoje trasy do zwykłej tablicy PHP do buforowania, skompilowane trasy mogą być ładowane z pamięci podręcznej bardzo szybko.
Dzięki obsłudze Pux PHP, możesz ładować i wysyłać trasy 1,5 ~ 2x szybciej niż czyste PHP Pux.
Slim nie przychodzi będzie szablon, to dodatek. Gorąco polecam Slim, jeśli chcesz tylko prostego routowania. – Luke
To zamknięte pytanie jest bardzo przydatne. Czy znalazłeś tego dobrego? Tu jestem w tym samym interesie. –