Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

用户访问控制

系统后台:用户登录、后台首页面、商品列表、添加商品、修改商品 

后天的一些页面在用户没有登录系统的时候是不允许访问的,例如 商品列表添加商品修改商品

 有一些页面无论用户是否登录系统,都是可以访问的,例如 用户登录

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

注意:

有的控制器方法被禁止访问(即使登录用户也如此),如果被访问,那么首先会询问用户是否是登录,如果用户已经登录系统,那么直接是403禁止访问。

关键字解释:

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

定义用户权限:

* 全部用户(无论登录与否)

? 匿名用户

用户名,具体用户

@ 登录系统用户

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

用户访问控制两个符号:+  -

+  表示过滤器专门是针对哪个方法起作用

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

- 表示除了此方法,其他方法都会进行过滤


Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

默认跳转登录界面:

前台:

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

后台:

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii::app()的理解

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

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

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

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

通过上图分析,我们知道了Yii::app()是系统第一个对象,是老大,我们可以利用该对象调用系统里边其他的相关方法、属性、对象。

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

CwebApplication(framework/web/CwebApplication.php)

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

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

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

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

系统应用组件

我们可以通过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框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii ::app()在入口处实例化index.php

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

【提示信息Flash()

setFlash() 设置提示信息

getFlash() 提取提示信息

hasFlash() 判断提示信息有无

 

例如:setFlash(success,添加商品成功)

      会在session里边存储success信息

HasFlash(success) ; 会判断当前session里边有没有名字是success这个变量

getFlash(success) 会去session里边提取名字为success这个变量,

之后会把success这个变量给我们删除(重新刷新页面这个条信息也就消失了)

以上flash信息是用户组件user来设置

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

视图显示

显示时间

显示sql语句运行时间main.php

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

自己写的脚本代码运行时间

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

【用户退出系统同时删除sessioncookie

Yii ::app()->user->logout() ;

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

【如何获得当前控制器和方法】

控制器$this -> id ;

方法$this->action->id ;

Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法

总结:

1. 用户访问控制过滤

*  @  ?  用户名    +  -

Filters

accessControl

accessRules

2. 直接操作的实例化对象Yii::app()

3. 显示提示信息setFlash()  getFlash()  hasFlash()

4. sql语句或脚本代码的执行时间显示Yii:: beginProfile()   endProfile()

5. 用户退出系统集中删除cookie  session

6. 控制器和方法如何获得$this -> id;   $this -> action->id;