Pux ( https://github.com/c9s/Pux ) を確認してください。これは、非常に高いパフォーマンス、ゼロ依存性、ゼロ オーバーヘッド (C 拡張サポート付き) をターゲットにしています。優れたパフォーマンスを提供する一方で、Pux は独自のルーティング パスを定義するための Sinatra のような API も提供します。
$mux = 新しい Pux\Mux;
$mux->any('/product', ['ProductController','listAction']);
$mux->get('/product/:id', ['ProductController','itemAction'] , [
'require' => [ 'id' => '\d+', ],
'デフォルト' => [ 'id' => '1', ]
]);
$mux->post('/product/:id', ['ProductController','updateAction'] , [
'require' => [ 'id' => '\d+', ],
'デフォルト' => [ 'id' => '1', ]
]);
$mux->delete('/product/:id', ['ProductController','deleteAction'] , [
'require' => [ 'id' => '\d+', ],
'デフォルト' => [ 'id' => '1', ]
]);
$route = $mux->dispatch('/product/1');
ベンチマーク結果:
- 静的ルートのディスパッチで「symfony/routing」よりも 48.5 倍高速です。(pux エクステンションをインストールした状態)
- 正規表現によるディスパッチでは、「symfony/routing」よりも 31 倍高速です。(pux エクステンションをインストールした状態)
- 「klein」よりも 69 倍高速です (pux 拡張機能をインストールした場合)。
n=10000
実行中のphp配列 - . 138796.45654569/秒
Runing pux - . 124982.98519026/秒
Runing klein - . 1801.5070399717/秒
ランハム - . 13566.734991391/秒
ランニングオーラ - 。39657.986477172/秒
symfony/routing を実行中 - . 1934.2415677861/秒
レート Mem php array pux aura ham symfony/routing klein
PHP 配列 138.8K/s 0B ---90% -28% -9% -1% -1%
pux 124.98K/s 0B 111% -- -31%-10% -1% -1%
オーラ 39.66K/s 0B 349%315% ---34% -4% -4%
ハム 13.57K/s 0B 1023%921% 292% -- -14% -13%
symfony/ルーティング 1.93K/s 786K 7175%6461%2050%701% -- -93%
クライン 1.8K/s 262K 7704%6937%2201%753% 107% --
================================== 棒グラフ ============== ====================
php 配列 138.8K/秒 | ████████████████████████████████████████████████████ ██████████ |
pux 124.98K/秒 | ████████████████████████████████████████████████████ ████ |
オーラ 39.66K/s | █████████████████ |
ハム 13.57K/s | █████ |
symfony/ルーティング 1.93K/秒 | | |
クライン 1.8K/s | | |
============================== システム情報 ================== ============
PHP バージョン: 5.5.6
CPU ブランド文字列: Intel(R) Core(TM) i5-3427U CPU @ 1.80GHz
XDebug 拡張機能を使用。
Pux は、(Symfony/Routing のように) すべてのルートを動的に構築するために計算時間を消費しないようにします。代わりに、Pux はルートをキャッシュ用のプレーンな PHP 配列にコンパイルします。コンパイルされたルートはキャッシュから非常に高速にロードできます。
Pux PHP 拡張機能のサポートにより、純粋な PHP Pux よりも 1.5 ~ 2 倍高速にルートをロードおよびディスパッチできます。