Yii的request对象的意义何在? [ 新手入门 ]
最近接手同事的项目,使用的框架为Yii。 有一事不明特向大家请教?
$age = Yii::app()->request->getQuery('age');
$level = Yii::app()->request->getQuery('level');
$tag = Yii::app()->request->getQuery('tag');
我看到程序中有很多这样的代码,通过getQuery来获取URL参数。 我直接使用$_GET也可以获取到URL参数,我想知道getQuery的意义何在? 不要告诉我可以带入一个默认值,那样没有意义,因为大多数情况下,我不需要这么做。
共 6 条回复
-
首先,带入默认值是一个比较common的需求,你不需要这么做可能只是一个特例。
其次,(C)HttpRequest是对一个http请求的抽象,其中封装了与当前请求有关的所有内容。可能getQuery这种在你看来逻辑很简单,似乎多此一举,但是你可以去看看其他一些方法,比如getIsAjaxRequest,getRestParam, 甚至是看上去最直白的getUrl,其中封装了大量的细节,这些细节你是绝对不愿意在你的代码里一遍一遍的跟全局变量去死磕的。但是通过封装,HttpRequest暴露出一个统一的接口(或者说抽象,概念,属性,whatever),极大的方便了开发者。当然你们这样的代码也是不够优雅的。对于查询参数,可以直接在action的方法签名中去声明。对于post参数,如果数据的意义明确,最好是建立一个模型来统一收集,这样就不需要写一排一排的相似代码了。
9260729 觉得很赞 -
terry_wang 上海
注册时间:2015-02-03
最后登录:2016-06-15
在线时长:2小时32分
最后登录:2016-06-15
在线时长:2小时32分
- 粉丝1
- 金钱25
- 威望0
- 积分45