Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 路由,一个请求是否应该匹配多个路由?_Php_Api_Routing - Fatal编程技术网

Php 路由,一个请求是否应该匹配多个路由?

Php 路由,一个请求是否应该匹配多个路由?,php,api,routing,Php,Api,Routing,我使用这里的代码()作为基础,将我的简单路由器重建为RESTful API 尽管在router.php的第49-52行(参见代码片段)之间,开发人员使用了一个循环,这意味着单个请求(方法和模式)有多个匹配项 我的问题是,一个方法/模式是否应该有多个匹配项?我的理解是,这种情况永远不会发生 如果是,在什么情况下 //Run the matching routes foreach ($this->_matchingRoutes as $route) { $route->run()

我使用这里的代码()作为基础,将我的简单路由器重建为RESTful API

尽管在router.php的第49-52行(参见代码片段)之间,开发人员使用了一个循环,这意味着单个请求(方法和模式)有多个匹配项

我的问题是,一个方法/模式是否应该有多个匹配项?我的理解是,这种情况永远不会发生

如果是,在什么情况下

//Run the matching routes
foreach ($this->_matchingRoutes as $route) {
    $route->run();
}
看看这个函数:
private function\u findMatchingPattern($routes,$URI){
//重置匹配模式数组
$this->_matchingRoutes=array();
foreach($routes作为$route){
如果($route->patternMatches($URI))
数组\推送($this->\匹配路由,$route);
}

}
这似乎是个奇怪的决定。我不会把你的简单路由器建立在一个声明“不再维护”的Github项目的基础上。我想知道你为什么要用这个,因为回购协议已经不再维护,而且已经有5年了。只保留了150行代码,并且与您找到的库相比,即时红旗要少得多。我知道代码可能会导致多个匹配,我的问题更符合逻辑,为什么会出现这种情况,尽管@ceejayoz和其他关于我问题的评论者提出了我没有考虑过的有效观点。@OliverGiess这永远不会发生,在我的回答中,我刚刚解释了为什么$this->\u matchingRoutes可以包含几个元素。