Php laravel 4.2路由器对象
我正在从事laravel项目以学习该框架,我脑海中出现了一个关于路由的问题。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"
路由器是单例类吗?因为我在
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与路由匹配