这篇文章主要介绍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路由实现原理

php优秀框架codeigniter学习系列——CI_Router类学习的更多相关文章

  1. php优秀框架codeigniter学习系列——CI_Security类学习

    这篇文章主要介绍CI核心框架工具类CI_Security. 安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用.以下选取类中的重点方法进行说明. __construct() 在构造 ...

  2. php优秀框架codeigniter学习系列——CI_URI类学习

    这篇文章主要介绍CI核心框架工具类CI_URI. 该类主要用来解析uri和决定路由的.关于URI和URL的关系请参考这位朋友的文章.简单来说URI是唯一定位的资源,URL是唯一资源的一个网络可能访问路 ...

  3. php优秀框架codeigniter学习系列——CI_Lang类学习

    这篇文章主要介绍CI核心框架工具类CI_Lang. 根据CI文档自己的定义,该类用来: 提供相关的函数,用于检索语言文件和文本行,以便国际化. 以下选取类中的重点方法进行说明. __construct ...

  4. php优秀框架codeigniter学习系列——CI_Input类学习

    这篇文章主要介绍CI核心框架工具类CI_Input. 根据CI文档自己的定义,该类用来: 提前处理全局变量,以保证安全; 提供一些帮助函数用来处理输入数据. 以下选取类中的重点方法进行说明. __co ...

  5. php优秀框架codeigniter学习系列——CodeIgniter.php概览

    CodeIgniter.php是CI框架的核心文件.它在前端控制器index.php之后运行,加载各类基础组件,执行请求.文件执行完成后,这次请求也就结束了.所以,该文只能对CodeIgniter.p ...

  6. 《Python爬虫学习系列教程》学习笔记

    http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...

  7. 【深度学习系列】迁移学习Transfer Learning

    在前面的文章中,我们通常是拿到一个任务,譬如图像分类.识别等,搜集好数据后就开始直接用模型进行训练,但是现实情况中,由于设备的局限性.时间的紧迫性等导致我们无法从头开始训练,迭代一两百万次来收敛模型, ...

  8. php优秀框架codeigniter学习系列——CI_Loader类分析

    这是一个加载视图和文件的类. __construct() 设置视图文件的路径,和获取输出缓冲级别. initialize() 该方法只会被CI_Controller调用一次,会调用 $this-> ...

  9. php优秀框架codeigniter学习系列——CI_Output类的学习

    这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确 ...

随机推荐

  1. python fabric的用法

    1. Fabric的任务运行规则根据Fabric Execution model的说明,fabric默认以串行方式运行tasks,具体而言: 1)在fabfile及其import文件中定义的task对 ...

  2. 虚拟机centos7配置本地yum源

    在虚拟机中要使用yum命令,就要先配置一下yum源,下面就分享一下这个过程: 1. 挂载iso到vmware,首先得确保CD/DVD连接到镜像.可以这样操作 2. 执行下面的命令 # mkdir /m ...

  3. Unable to construct api.Node object for kubelet: can't get ip address of node master.example.com: lookup master.example.com on : no such host

    openshift首页进不去 启动openshift时报的错,大意是: 无法为kubelet构造api.Node对象:无法获取节点master.example.com的IP地址: 所以就联想到新装的c ...

  4. java.lang.ClassCastException: com.sun.proxy.$Proxy* cannot be cast to***

    Spring AOP 有两种代理方法, 一种是常规JDK,一种是CGLIB. 当代理对象实现了至少一个接口时,默认使用JDK动态创建代理对象: 当代理对象没有实现任何接口时,就会使用CGLIB方法. ...

  5. 移动端picker插件

    项目需要,要做移动端网页,比如选择出生日期什么的.可笑weui给的控件,竟然选择后的数据不准确. 于是自己写了一个. 链接: https://pan.baidu.com/s/1qY2SSxQ 密码: ...

  6. 软件工程---UML理解

    1.依赖关系和关联关系 1.1依赖关系是调用关系,其又分为全局依赖.参数依赖.局部依赖 1.2关联关系是结构上的关系,按照关联的强弱又具体分为关联关系.聚合关系(整体和部分的组成关系.whole-pa ...

  7. linux下磁盘查看和分区

    4.1 df命令 4.2 du命令 4.3/4.4 磁盘分区 df命令df输出磁盘文件系统使用情况: [root@centos ~]# df文件系统 1K-块 已用 可用 已用% 挂载点 /dev/s ...

  8. 剑指offer(7)斐波那契数列

    题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项. n<=39 题目分析 我们都知道斐波那契可以用递归,但是递归重复计算的部分太多了(虽然可以通过),但是这 ...

  9. 剑指offer(12)数值的整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent.求base的exponent次方. 题目分析 这道题用传统的方法也可以做,只不过效率太低,这里我们用到快速幂的方法 ...

  10. UVA1428 Ping pong

    思路 分别统计这个位置左边和右边各有多少大于和小于它的数,乘起来即可 使用权值树状数组 代码 #include <cstdio> #include <algorithm> #i ...