Yii框架Yiiapp()的理解

Yii框架是一个纯面向对象的框架,这个框架在运行的时候,也就是一个应用被访问的时候,需要创建许多对象,这些对象再调用许多相关方法,从而完成一次web请求。

这个Yii::app() 是第一个被创建的对象,由这个对象调用相关方法,完后后续工作。

Yii::app()主要负责一些全局性的功能模块,比如Yii::app()->getUser()返回的是CWebUser实例(用于表达当前用户的验证信息)。因为CWebApplication继承CComponent,所以Yii::app()->getUser()也可以写作Yii::app()->user (参见关于CComponent的说明,这是Yii的基石)。

Yii::app()是类CWebApplication的实例,因此这个类(包括继承类)能被使用的属性和方法,这个对象都可以使用(有些方法是系统运行的核心方法,不建议直接调用)。例如 CWebApplication 里边有一个方法 getLayoutPath() 获得布局路径,则我们可以这样:

echo Yii::app()->getLayoutPath(); // 输出 D:\www\phpernote.com\protected\views\layouts

另外,CWebApplication 和其父类 CApplication 为系统定义了好多可以使用的组件,db、user、session、authManager、request 等等还有其他的不一一列举。

我们可以通过Yii::app()使用以上组件,例如:

echo Yii::app()->request->url; //可以获得当前请求的相对url地址( /index.php?r=user/login )

说明:

Yii::app()->request; 会创建request类对象

Yii::app()->request->url; 会调用类request里边的属性信息,这个属性没有,或调用父类的魔术方法__get间接调用geturl()方法

Yii::app()->user;  会调用用户验证组件(CWebUser),CWebUser的一些属性和方法就可以被使用。

时间: 2024-10-11 04:36:05

Yii框架Yiiapp()的理解的相关文章

yii框架的理解

Yii Framework是一个基于组件.用于开发大型 Web 应用的高性能 PHP 框架.Yii提供了今日Web 2.0应用开发所需要的几乎一切功能.Yii是最有效率的PHP框架之一. yii框架里有很多组件,他的功能非常强大,代码的编写也变得简单.我是刚刚学习yii框架,听老师说这个框架很简单,可我并不那么认为,他里面有很多东西,根本搞不清楚作用.你必须英语够好,不然就无法看明白他写的是什么.都说多看看手册,代码,用多了自然就会了,可我觉得,就算我反复使用,我还是不知道yii框架里每个方法.

YII框架源码分析(百度PHP大牛创作-原版-无广告无水印)

                        YII 框架源码分析             百度联盟事业部--黄银锋   目 录 1. 引言 3 1.1.Yii 简介 3 1.2.本文内容与结构 3 2.组件化与模块化 4 2.1.框架加载和运行流程 4 2.2.YiiBase 静态类 5 2.3.组件 6 2.4.模块 9 2.5 .App 应用   10 2.6 .WebApp 应用   11 3.系统组件 13 3.1.日志路由组件  13 3.2.Url 管理组件  15 3.3.异常

Yii框架分布式缓存的实现方案

声明:本文阅读对象最好是对Yii和分布式缓存有一定了解的人群,否则理解和掌握上有一些困难,建议阅读之前做好以上两点基础准备. YiiFramework简称Yii,读作易,代表简单(easy).高效(efficient).可扩展(extensible),Yii将面向对象思想以及代码的重用性发挥到了极致,尤其是在缓存的支持上,Yii是最有效率的PHP框架之一. Yii的缓存支持封装在框架核心的caching文件夹下面,如下图是Yii支持的缓存存储介质. 如果要做跨Session和请求的分布式缓存,可

Yii框架学习笔记(二)将html前端模板整合到框架中

选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/topics/390807796 更多内容 百度:yii 前端 http://my.oschina.net/u/1472492/blog/221085 摘要 Yii框架学习笔记(二)将html前端模板整合到框架中 原文地址:http://www.ldsun.com/1309.html 上一节成功将Y

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建

php的yii框架下开发环境xampp,vim,xdebug,DBGp的搭建 选择Linux桌面环境Deepin2014.1下开发网站的理由很简单,能截图,有搜狗输入法,可以WPS文档记录,终端下复制粘贴很容易,相比ubuntu,fedora死机次数少了,对,就是不用折腾,自带的. 先说vim和DBGp插件. Deepin2014.1简体中文,自带的vim7.4版本,很多配置已经很适合大陆的人使用了,比如Php和Python的调试支持等,不需要重新编译了.可以节省不少步骤.这里提供一个vim的配

使用Yii框架中遇到的三个问题

以下由我们在信易网络公司开发项目的时候终结出的一些经验 1.main.php文件中欲引入全局变量的问题 还原一下此问题:在Yii框架中,main.php一般会作为整个应用的配置文件,保存Application的各种参数,直接return数组.在使用的过程中,因为main.php文件一定会被Yii提前加载,所以将一些全局性的操作也放在了此文件,加载一些类操作啥的没有什么问题,当有一次加了一个全局变量,并且在其它地方使用global获取全局变量时,发现无论我如何努力都得到的是NULL.各种尝试后,终

Yii框架 400 错误

YII  400错误 在YII框架中400错误是csrf校验失败的意思 csrf是什么? CSRF(Cross-site request forgery跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用. 所以,如果你自己没有csrf校验机制,严禁关闭csrf. 怎么关呢? public $enableCsrfValidation=false;  设置 为false为成员变量 如果不关.怎么

Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']

public function getMinLimit () {        $sql = "...";        $result = yii::app()->db->createCommand($sql);        $query = $result->queryAll();         return array (                $query [0] ['max'],         );    } $connection=Yii::

YII框架的依赖注入容器

依赖注入(Dependency Injection,DI)容器就是一个对象,它知道怎样初始化并配置对象及其依赖的所有对象. 所谓的依赖就是,一个对象,要使用另外一个对象才能完成某些功能.那么这个对象就依赖于被使用的对象. 例如: /** * 厨师 */ class cook { /** * 制作食物 */ public function cooking() { $food = new food(); echo $food->get(),"汤<br/>"; } } /*