Zend framework2 ZF2-如果路由器匹配多个路由,将调度什么?

Zend framework2 ZF2-如果路由器匹配多个路由,将调度什么?,zend-framework2,Zend Framework2,所以-如果我有一个url,可以匹配许多路由。。。哪条路线会赢?将发送哪个操作 它是否简单-首先定义-首先调度 以下是路线示例: 'route-catchall' => array( 'type' => 'regex', 'options' => array( 'regex' => '/api/v1/.*', 'defaults' => array( 'controller' => 'Ind

所以-如果我有一个url,可以匹配许多路由。。。哪条路线会赢?将发送哪个操作

它是否简单-首先定义-首先调度

以下是路线示例:

'route-catchall' => array(
    'type' => 'regex',
    'options' => array(
        'regex' => '/api/v1/.*',
        'defaults' => array(
            'controller' => 'IndexController',
            'action'     => 'apiCatchAll',
        ),
    ),
),
'route-test1' => array(
    'type' => 'literal',
    'options' => array(
        'route' => '/api/v1/route1',
        'defaults' => array(
            'controller' => 'IndexController',
            'action'     => 'apiRoute1',
        ),
    ),
),

此url
example.com/api/v1/route1
是否路由到
apiRoute1
apiCatchAll

由于连接到路由堆栈的路由存储在中,因此第一条匹配的路由将获胜

路线通过一条线连接到主路线。较高优先级意味着首先检查路线。默认情况下,将读取第一条连接的路由(如果它们都具有相同的优先级或根本没有优先级)

'route-catchall'=>数组(
'type'=>'regex',
“选项”=>数组(
“regex'=>”/api/v1/*',
“默认值”=>数组(
“控制器”=>“IndexController”,
'action'=>'apiCatchAll',
),
),
“优先级”=>-1000,
),
'route-test1'=>阵列(
'type'=>'literal',
“选项”=>数组(
“路由”=>“/api/v1/route1”,
“默认值”=>数组(
“控制器”=>“IndexController”,
“操作”=>“apiRoute1”,
),
),
“优先级”=>9001,//超过9000!
),

在本例中,
route-test1
将首先匹配,因为它的优先级很高。

谢谢。我没有意识到有一个优先级设置。如果没有指定优先级,我们可以假设它与指定零优先级相同吗?我认为ZF2中的默认优先级是
1
,但它是每个侦听器的优先级(队列和列表不同)。看到了吗?我想这是一个需要修正的不一致性:-(…在我意识到优先级1不如优先级2重要之前,我做了几次尝试)>\uuuuuuuuuu<…所以数字越高,优先级越高!Uduh!