yii2.0 user功能解析

来源:互联网 发布:刺客信条起源优化 编辑:程序博客网 时间:2024/06/06 17:31

                yii2.0这个框架我想发表一下自己看法,那就是面向对象设计的精华(oop)。那大牛会说了,我说这些就是屁话。没错,大家都知道YII是一个非常好用的php开发框架,而且是遵循OOP的设计思想。但是很多人,只知道其然,尔不知所以然,人云亦云。今天,我给大家就讲解一下YII的登录,所用到的user组件。深入的了解,yii组件机制和登录的user原理。


1.yii组件思想,大家都了解,我就简单的讲解一下吧。


这是yii的配置目录,里面配置了yii的组件


组件详情


2.我们找的了user组件的位置,那我们就开发进入正题了。

这个user组件的具体文件目录在:/basic/models/user.php,(这个文件很强大哦!),他可以用于登录,退出,cookie验证,下面我们来看看这个类。




这个组件的原理:user--继承----》\yii\base\Object-----具体的实现在------》\yii\web\IdentityInterface

意思就是说:user可以使用\yii\base\Object里的方法和属性,具体的实现方式,是使用了\yii\web\IdentityInterface的方法(就是重写了这个类里的方法,接口调用。)

现在压力来了,这些东西是怎么使用的了。我研究了一天,真心说,我自己很疲惫。接下来,有到了我们的举例时间。(注:我使用的登录,就是yii安装的那个界面

mvc:控制器(siteController),模型(loginform),视图(login)

这是控制器里的登录:首先判断用户是不是访问过的用户,如果是访问过的用户,就直接跳转登录了。(这里面肯定有cookie,我不多做解释cookie) 

看到这个代码:YII::$app->user->isGuest ,哎呀!我的个神,这是什么。这是我第一次看这个代码的内心真实写照。没办法,我是个矫情的人。我必须弄明白,这是什么。

所以我就断点测试了一下。原来,是验证用户是否登录。

接下来,我看到$model=new Loginform():这个地方,大家肯定就知道了,如果用户没有登录(意思就是浏览器没有cookie),那我们进入登录流程。


上图中用到了request组件,大家是不是,有所体会组件的用处了。就是在配置文件中配置过,然后调用方式就是一个规律了。(好方便啊)进入正题,我们看登录是怎么回事。


大家发现了什么,我笑尔不语,自己去体会吧。login方法主要是判断用户是否存在,同时设置cookie有效时间,前面的伏笔,终于出现了。



这里面的代码就与user.php关联上了,小小的难度来了。admin是什么,我重写了user类。大家会觉得我很奇怪,但是我只想说YII是工具,用的感受,自己了解,就说这个USER组件,官方定义user数据表,靠,我必须用吗?大家觉得我很愤青,我只想说,我想怎么用,就怎么用。接下来我就给真相,原因是这样,user是组建,我按照组件的配置,从写了一个admin类,做为我自己的登录组件。



大家可以好好看看,以后我会时常更新文章。

0 0
原创粉丝点击