Yii::app()疑惑
2013-12-06 11:26
155 查看
http://www.yiiframework.com/forum/index.php/topic/5370-yiiapp%E7%96%91%E6%83%91/
在Yii的实例中,像$this->redirect(Yii::app()->user->returnUrl)中的Yii::app()->user->returnUrl的user调用的是哪个文件的属性或方法。
个人认为,像Yii::app()是返回当前应用的实例,可以调用实例中任何的ControllerID,actionID,配置文件 main.php等,
但我找了很久都没发现是在那里。
在SiteController.php文件中还有很多像这样的语句:
$this->redirect(Yii::app()->homeUrl);
Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
不知道该怎么理解这个Yii::app(),
等待强强的回答
Yii::app()返回的是你在index.php里创建的CWebApplication实例。在一次请求处理过程中,这是个唯一的实例。
Yii::app()主要负责一些全局性的功能模块,比如Yii::app()->getUser()返回的是CWebUser实例(用于表达当前用户的验证信息)。因为CWebApplication继承CComponent,所以Yii::app()->getUser()也可以写作Yii::app()->user
(参见关于CComponent的说明,这是Yii的基石)。
其它的如returnUrl, homeUrl之类的也都是这种通过getter函数定义的部件属性。
另外,你在index.php使用的配置文件,其实质就是对Yii::app()进行属性的初始化。配置文件里提供的就是属性名和属性值的一个列表。任何CWebApplication的公共成员或通过setter定义的属性都可以配置。注意有的属性配置可能比较复杂,例如'components'属性。这时可以参见对应的API信息寻求帮助(例如'components'对应的API就是setComponents())
在Yii的实例中,像$this->redirect(Yii::app()->user->returnUrl)中的Yii::app()->user->returnUrl的user调用的是哪个文件的属性或方法。
个人认为,像Yii::app()是返回当前应用的实例,可以调用实例中任何的ControllerID,actionID,配置文件 main.php等,
但我找了很久都没发现是在那里。
在SiteController.php文件中还有很多像这样的语句:
$this->redirect(Yii::app()->homeUrl);
Yii::app()->user->setFlash('contact','Thank you for contacting us. We will respond to you as soon as possible.');
不知道该怎么理解这个Yii::app(),
等待强强的回答
Yii::app()返回的是你在index.php里创建的CWebApplication实例。在一次请求处理过程中,这是个唯一的实例。
Yii::app()主要负责一些全局性的功能模块,比如Yii::app()->getUser()返回的是CWebUser实例(用于表达当前用户的验证信息)。因为CWebApplication继承CComponent,所以Yii::app()->getUser()也可以写作Yii::app()->user
(参见关于CComponent的说明,这是Yii的基石)。
其它的如returnUrl, homeUrl之类的也都是这种通过getter函数定义的部件属性。
另外,你在index.php使用的配置文件,其实质就是对Yii::app()进行属性的初始化。配置文件里提供的就是属性名和属性值的一个列表。任何CWebApplication的公共成员或通过setter定义的属性都可以配置。注意有的属性配置可能比较复杂,例如'components'属性。这时可以参见对应的API信息寻求帮助(例如'components'对应的API就是setComponents())
相关文章推荐
- Unity3D的断点调试功能
- Android关机流程源码分析
- Android学习笔记_22_服务Service应用之—与Activity进行相互通信的本地服务
- Android Webview中Flash播放,在3.0及4.0以上系统全屏
- cocos2d-x 3.0 (vs2012环境下亲测)把json数据转换成unicode编码来传送用户数据并且实现json数据的解析和封装
- Android 异步加载
- 实现 Cocos2d-x 全局定时器
- cocos2d-x中添加Enter键和方向键按键响应
- Android实现自定义进度条
- [quick-cocos2d-x lua学习] 官网之多分辨率适配详解
- android-xml布局
- Android开发之ListView Adapter优化
- 【cocos2d-x IOS游戏开发-捕鱼达人18】积分板实现
- ios 解析HTML
- cygwin设置NDK环境变量ANDROID_NDK_ROOT
- Android EditText输入框 软键盘
- android 中activity的生命周期
- ios中如何画1像素的直线
- android的Application类
- android 环形进度条 圆形