深入理解YII ::app()

Yii::app() 是一个实例化的对象,是我们在当前框架里边可以直接操作的对象,

我们可以把这个对象理解成请求应用的第一个对象。

Yii框架是纯OOP面向对象框架,也就是利用对象调用类的属性、方法,完成应用请求。


Yii::app()是在哪里诞生的?在index.php

深入理解YII ::app()_第1张图片


可以通过函数get_class(对象),根据对象获得对应的类。

可以得出

Yii::app() CwebApplication类实例化的对象

CwebApplication(framework/web/CwebApplication.php)

 

因此Yii::app()可以调用CwebApplication 或父类 CApplication里边的相关属性或方法。

注意:不要随便访问CwebApplication 或 其父类的 相关方法,会影响系统稳定。

    /*
     * 使用Yii::app()调用相关属性、方法
     */
    function actionAp(){
        echo Yii::app()->defaultController,"<br />"; //默认控制器
        echo Yii::app()->layout,"<br />"; //默认布局
        echo Yii::app()->name,"<br />"; //
        echo Yii::app()->charset,"<br />"; //编码
        echo Yii::app()->getLayoutPath(),"<br />"; //布局路径
        echo Yii::app()->request->getUrl(),"<br />"; //请求url
        echo Yii::app()->request->getHostInfo(),"<br />"; //主机信息
    }

输出:

index
main
雍达商城
UTF-8
D:\XAMPP\htdocs\shop\protected\views\layouts
/index.php?r=user/ap
http://web.0507shop.com

深入理解YII ::app()_第2张图片

系统应用组件

我们可以通过Yii::app() 调用系统的组件

User  session  request  log  db等等

 

在系统的任何角落都可以直接访问以上组件

Yii ::app()->user  (实例化对象'CWebUser' => '/web/auth/CWebUser.php',)

Yii ::app()->session (实例化'CHttpSession')

Yii ::app()->request

Yii ::app()->db

系统有哪些组件?


深入理解YII ::app()_第3张图片

比如调用user组件,调用是哪个文件?

这样找:

深入理解YII ::app()_第4张图片

找到yii核心文件yiilite.php

深入理解YII ::app()_第5张图片

好吧,就此结束吧!



你可能感兴趣的:(深入理解YII ::app())