Kohana路由

路由是Kohana中的难点之一:

前面知道:Controller::rediect("welcome/index");会访问控制器 welcome的index函数

其实它的原理就是  :

     页面发出对控制器index函数的请求;

     找到当前使用匹配的路由;

     按路由规则找控制器,再找到对应的函数。

 

  疑问: 路由是一个非常重要的概念,如手册所说,你可以用路由做很多不可思议的事情。但是学到现在,个人感觉路由只是定位你控制器下面的函数,没感觉有手册说的那么夸张:

现在深入探究下路由的使用:

1,路由有自己的name,会不会是所有的路由根据name来区别。所有的控制器,视图或者自己新建立的文件夹项目都可以有属于自己的路由。

  不继续猜想了,请看提示2.

 2,手册中的转向404页面提示我,为什么要有多个路由,因为根据url编写的规则然后控制路由的转向才是路由的精髓所在。

   优先极的问题:

   在同一个页面中,相同的规则的路由越往上就越先调用。

   模块中的init.php比bootstarp.php先调用。

规则学习:

  我觉得弄懂了规则就相当与弄懂了路由。

  先看分析下kohana默认路由:(有过REGEX学习的可以看下Kohana_Route类)

1 Route::set('deflaut', '(<controller>(/<action>(/<id>)))')
2 ->defaults(array(
3 'controller' => 'welcome',
4 'action'     => 'index',
5 'id'=>'myid',
6 ));

  注意这个规则 (<controller>(/<action>(/<id>))) 共有() ,<>,/三个符号,<>表示键值,()表示该参数可有可无,如果没有的话就会匹配到默认值 defaults数组中的值。/表示界限符。

  思考:路由只能定位到控制器么??

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2014-04-14 12:18  UCanBeFree  阅读(823)  评论(0编辑  收藏  举报