Yii框架之用户访问过滤访问权限控制、Yii::app()的详解、操作提示信息、SQL和脚本执行时间、获得控制器和方法
【用户访问控制】
系统后台:用户登录、后台首页面、商品列表、添加商品、修改商品
后天的一些页面在用户没有登录系统的时候是不允许访问的,例如 商品列表、添加商品、修改商品
有一些页面无论用户是否登录系统,都是可以访问的,例如 用户登录
注意:
有的控制器方法被禁止访问(即使登录用户也如此),如果被访问,那么首先会询问用户是否是登录,如果用户已经登录系统,那么直接是403禁止访问。
关键字解释:
定义用户权限:
* 全部用户(无论登录与否)
? 匿名用户
用户名,具体用户
@ 登录系统用户
用户访问控制两个符号:+ -
+ 表示过滤器专门是针对哪个方法起作用
- 表示除了此方法,其他方法都会进行过滤
默认跳转登录界面:
前台:
后台:
【Yii::app()的理解】
Yii::app() 是一个实例化的对象,是我们在当前框架里边可以直接操作的对象,
我们可以把这个对象理解成请求应用的第一个对象。
Yii框架是纯OOP面向对象框架,也就是利用对象调用类的属性、方法,完成应用请求。
通过上图分析,我们知道了Yii::app()是系统第一个对象,是老大,我们可以利用该对象调用系统里边其他的相关方法、属性、对象。
Yii::app() 是CwebApplication类实例化的对象
CwebApplication(framework/web/CwebApplication.php)
因此Yii::app()可以调用CwebApplication 或父类 CApplication里边的相关属性或方法。
注意:不要随便访问CwebApplication 或 其父类的 相关方法,会影响系统稳定。
可以通过函数get_class(对象),根据对象获得对应的类。
系统应用组件
我们可以通过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()在入口处实例化index.php
【提示信息Flash()】
setFlash() 设置提示信息
getFlash() 提取提示信息
hasFlash() 判断提示信息有无
例如:setFlash(‘success’,’添加商品成功’)
会在session里边存储success信息
HasFlash(‘success’) ; 会判断当前session里边有没有名字是success这个变量
getFlash(‘success’) 会去session里边提取名字为success这个变量,
之后会把success这个变量给我们删除(重新刷新页面这个条信息也就消失了)
以上flash信息是用户组件user来设置
视图显示
【显示时间】
显示sql语句运行时间main.php
自己写的脚本代码运行时间
【用户退出系统同时删除session和cookie】
Yii ::app()->user->logout() ;
【如何获得当前控制器和方法】
控制器:$this -> id ;
方法:$this->action->id ;
总结:
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;