Php laravel 4.2路由器对象

Php laravel 4.2路由器对象,php,laravel-4,routes,Php,Laravel 4,Routes,我正在从事laravel项目以学习该框架,我脑海中出现了一个关于路由的问题。 路由器是单例类吗?因为我在route.php文件中尝试了以下内容 $route1 = App::make('router'); $route2 = App::make('router'); $route3 = App::make('router'); $route4 = App::make('router'); $route1->get('/r1', function(){ echo "route 1"

我正在从事laravel项目以学习该框架,我脑海中出现了一个关于路由的问题。
路由器是单例类吗?因为我在
route.php
文件中尝试了以下内容

$route1 = App::make('router');
$route2 = App::make('router');
$route3 = App::make('router');
$route4 = App::make('router');

$route1->get('/r1', function(){
    echo "route 1";
});

$route2->get('/r2', function(){
    echo "route 2";
});

$route3->get('/r3', function(){
    echo "route 3";
});

$route3->get('/r4', function(){
    echo "route 4";
});

var_dump($route1->getRoutes());
如您所见,我创建了router类的四个对象,每个对象添加一条路由。最后一行打印
$route1
对象的路由,输出为

object(Illuminate\Routing\RouteCollection)[112]
  protected 'routes' => 
    array (size=2)
      'GET' => 
        array (size=4)
          'r1' => 
            object(Illuminate\Routing\Route)[120]
              ...
          'r2' => 
            object(Illuminate\Routing\Route)[122]
              ...
          'r3' => 
            object(Illuminate\Routing\Route)[124]
              ...
          'r4' => 
            object(Illuminate\Routing\Route)[126]
              ...
输出显示
$route1
对象具有由
$route2
对象、
$route3
对象和
$route4
对象创建的其他路由。

路由如何在它们之间共享?

这里有两个组件:路由和路由集合。注册路由时,它们都会添加到路由集合中。最好通过查看symfony管线组件向您展示

您有一个路由、路由集合、请求和url匹配器

创建管线并将其收集到管线集合中

获取请求url并使用匹配器将url与路由匹配