这篇文章主要介绍CI核心框架工具类CI_Router。

 如果说CI_URI类是用来解析URI,那么CI_Router类就应该是根据解析出来的URI来决定究竟访问哪一个文件和哪一个function。

详细步骤:

1.导入CI_Config和CI_URI类作为资源;

2.调用其中的_set_routing()方法,在该方法中首先把用户在config目录中设置的route.php的$route路由数组取出来;

3. 调用_parse_routes()方法,路由数组中的值和键可以利用正则表达式,甚至可以把值设置为回调函数,在这里分别进行处理;

4.调用_set_request()方法,分出$this->uri->segments或者$val中的控制器,方法,参数,将真正需要访问的类和方法存入$this->class,和$this->method,以方便以后的调用。

 在Codeigniter.php中会调用:

$class = ucfirst($RTR->class);
$method = $RTR->method;    

  

 

参考:

codeigniter路由实现原理