2017-11-12 3 views
0

シンプルなルータをRESTful APIとして再構築するための基礎として、ここにコード(https://github.com/gregdel/php-router)を使用しています。リクエストは1つ以上のルートと一致する必要がありますか?

router.php(コードスニペットを参照)の行49-52の間に、開発者はループを使用して、単一のリクエスト(メソッドとパターン)に対して複数の一致を意味します。

私の質問は、メソッド/パターンに対して複数の一致があるはずですか?私はこれが決して起こるべきではないということを理解しています。

その場合、どのような状況でですか?この機能では

//Run the matching routes 
foreach ($this->_matchingRoutes as $route) { 
    $route->run(); 
} 
+1

これは奇妙な判断のようです。私は9つの星で "もはや維持されていない"と言われているGithubプロジェクトからあなたの単純なルータの基盤とはしません。 – ceejayoz

+1

私はレポがもはや維持されておらず、5歳であるので、これをなぜ使用しているのだろうと思います。 –

+2

[Macaw](https://github.com/noahbuscher/Macaw)は、わずか150行のコードで管理されており、見つかったlibとしてのインスタント・レッド・フラッグはそれほど多くありません。 – ceejayoz

答えて

1

ルック:

private function _findMatchingPattern($routes, $URI) { 
 
    //Reset the matching pattern array 
 
\t $this->_matchingRoutes = array(); 
 
    foreach ($routes as $route) { 
 
\t \t if ($route->patternMatches($URI)) 
 
\t \t \t array_push($this->_matchingRoutes, $route); 
 
\t } 
 
}
$ルート配列はいくつかの経路ではなく、1つを含むことができます。 それから、いくつかの一致があるかもしれません。

+0

私はコードが複数のマッチにつながる可能性があると理解しました。私の疑問に対する@ceejayozやその他のコメント者は、私が考慮しなかった有効な点を作ったのですが、 –

+1

@OliverGiessこれは決して起こりませんが、私の答えでは、$ this - > _ matchingRoutesにいくつかの要素が含まれる理由を説明しました。 –

関連する問題