用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2924|回复: 0
收起左侧

[初级] 简单谈谈个人对CI路由解析流程的分析

[复制链接]
发表于 2012-12-20 20:07:12 | 显示全部楼层 |阅读模式
CI路由解析流程

涉及到两个类:system/core/Router.php和system/core/URI.php

在CI程序执行的过程中首先调用Router的_set_routing

系统首先判断URL的形式是查询字符串或者是友好URL(/news/article/my_article),一般都是友好URL用的多,毕竟要考虑SEO

加载route的配置文件,一般放在application/config/routes.php,其中设置了默认访问的控制器

系统分析$_SERVER['REQUEST_URI'],判断友好URL是否为空,此处的分析是由URI类处理并返回

当访问index.php/welcome/index,则friend url=welcome/index,friend url中的内容通过URI类处理后,最终变成URI数组(Array ( [1] => welcome [2] => index)
index.php friend url=空,系统将默认设置URI数组变成(Array ( [1] => welcome [2] => index)

分析URI中数组元素的信息,找到相应的类和方法,然后调用执行,如果找不到相应的类或者方法的则直接跳转至404页面。


遇到不常用的内置函数:

strncmp( string $str1 , string $str2 , int $len ) 二进制安全比较字符串开头的若干个字符
str1 第一个字符串。
str2 第二个字符串。
len 最大比较长度。

经验不多,研究不深,写得比较粗糙。

本版积分规则