laravel 4.2路由器对象

时间:2015-10-22 00:01:56

标签: 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";
});

$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());

如您所见,我创建了四个路由器类对象,每个对象添加一个路由。最后一行打印$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个对象创建的其他路径。
溃败如何在他们之间共享?

1 个答案:

答案 0 :(得分:2)

这里有两个组件路由和路由集合。当您注册路线时,他们都会被添加到路线集合中。最好的方法是通过查看symfony路径组件。 http://symfony.com/doc/current/components/routing/introduction.html

您有路线,路线收集,请求和网址匹配。

您可以创建路线并将其收集到路线集合中。

获取请求网址并使用匹配器将网址与路径匹配。