符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
用http://backend/访问后端时,页面会自动被重定向到http://backend/index.php?r=site%2Flogin,要求进行登录,这其中的流程是怎样的?
成都创新互联长期为超过千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为东乌珠穆沁企业提供专业的成都网站设计、成都网站制作,东乌珠穆沁网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。按照YII的理念,框架在处理http://backend/这种链接时,首先要找到默认的controller,然后再找默认的action。
在backend应用的最初入口文件:index.php中,有如下代码:
(newyii\web\Application($config))->run(); |
可以知道,application的入口文件是:
%yii-application%\vendor\yiisoft\yii2\web\Application.php
打开该文件,找到$defaultRoute的定义:
public$defaultRoute = 'site'; |
因此,可以确定默认的controller就是siteController。
对于YII框架,控制器的默认action为actionIndex,但是在这个action被执行之前,会根据controller所配置的过滤器,先执行过滤器的代码,如果过滤器的执行结果导致action不被执行,则也没有获取默认action的必要了。所以首先要看siteController的过滤器是怎样配置的。
根据YII2框架,controller中的过滤器实际上是一些behavior,被配置为在action之前或之后执行,用来做一些必要的检查和设置等工作。对于backend应用来说,一般都需要登录,所以有必要在action被执行之前,检查一下用户是否登录,这时,就用得上过滤器了。
在siteController的过滤器配置如下:
public functionbehaviors() |
在上述代码中看到配置的第一个过滤器是access,这个过滤器是YII2内置的过滤器,用来实现访问控制,这里配置了两条rule,其中第二条rule控制了index这个action,其中roles => [‘@’],表示只有登录用户才能执行actionIndex,而当前用户还没有登录,所以是不能执行indexAction的,于是请求被转到user这个model来处理。
为什么要把请求转到user这个model来处理?因为在不同的系统中,对于登录的逻辑处理是不一样的,框架中需要将这些逻辑交给用户来自己处理,而YII框架中,业务逻辑是放在model中的,所以最后由user这个model来处理。
为什么model名称是user?看AccessControl类的定义:
public$user = 'user'; |
在这里定义了model的名称,在init()函数中将model实例化。
关于user这个model的位置,它并没有被放在backend的model目录下,而是被放在了与backend平级的common目录下,是因为有可能前端应用也需要登录,很多时候,在一个系统中,登录的逻辑都是一样的。
最终,在user这个model的loginRequired函数中,执行了一个重定向,将链接重定向到$loginUrl所指向的地址,而这个变量的值,就是:
public$loginUrl = ['site/login'] |
所以,页面就跳转到登录页面了。
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。