CodeIgniter源码阅读(三)(URI.php)

看这一部分之前不妨先看一下confing里的设置。在config里有一项设置是$config['uri_protocol'] = 'AUTO';默认是AUTO,可以设置成AUTOPATH_INFOQUERY_STRINGREQUEST_URIORIG_PATH_INFO五种方式。URI类中的主要方法_fetch_uri_string就是围绕这个设置展开的。

CI本身支持CLI方式访问(虽然我还没有看到CLI的用处~~)。

而在这个文件中,我们还看到除了前六个函数,其他每个函数都是成对出现的,带r和不带r的,也就是正序和倒序两种方式。不得不说CI考虑的很周全。

  • 获取并设置URI字符串

    这个里面其实内容不多,主要是用到$_SERVER这个超全局变量,对字符串做出一些操作。如果在config里设置的是AUTO方式的话,就会去检测到底使用了那种方式。(所以从效率上来讲我们是不是应该明确指定使用何种方式呢?);

    其实这里主要涉及到的还是我们常规使用的通过浏览器访问和CLI模式的访问至于CLI和常规情况的区别,应该是在参数的接收上(这只是我的理解~~)。如果是CLI模式,则调用_parse_cli_args来解析参数,常规方法则通过_detect_uri来处理。

  • 解析URI并赋值

    _detect_uri和上一个函数里都涉及到很多$_SERVER这个超全局变量是很值得学习的。而且在整个CI里使用正则表达式的地方也很多。(这似乎是很多优秀的web框架和库的通俗做法?jQuery也是)。

  • 过滤不安全字符

    _filter_uri同样是通过正则表达式。%28->&#40,不太明白这个是为什么。十六进制转十进制的UTF-8?

  • 其余的一些对URI字段的操作

    可以看到剩下的函数都很短。但也正是精华之所在。在框架内写代码时取得URI或者segment的做法都是通过这些短函数了。避开直接操作的函数。最重要的是,如果是我去写一个函数,我可能每次都会去读取一遍URI,这样实际上就做了很多无用功。

这一个类其实不难看懂,但是我看了很久,也不知道该从哪儿开始去写笔记。看这个框架,看到更多的是思想。

转载于:https://my.oschina.net/scholer/blog/96627

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值