Yii 前后台分离 demo

1.首先我把目录结构写下来:

    wwwroot/

        htdocs  //webroot目录,方便资源文件,和程序文件做Linux权限控制

             index.php
             admin.php 
             assets/
             images/
        protected/
            config/
                main.php
            components/
            controllers/
            models/
            views/
            runtime/

       admin /
            config/
                main.php
            components/
            controllers/
            views/
           runtime/

1.新建admin的目录结构,注意后台必须保留main.php defaultController中的controller文件和defaultAction对应的view文件 ,如siteController.php view/site/index.php

 

2.前后台引导文件分别如下,复制index.php改名为admin.php并修改
Yii::app()->createWebApplication('protected/admin/config/main.php')->run();

 

3.protected/admin/config/main.php的代码如下:

Java代码  

  1. <?php  
  2. $backend = dirname(dirname(__FILE__));  
  3. $frontend = dirname($backend);  
  4. Yii::setPathOfAlias('backend',$backend);  
  5.   
  6. $frontendArray = require_once($frontend.'/config/main.php');  
  7.   
  8. $backendArray=array(  
  9.     'name'=>'网站后台管理系统',  
  10.     'basePath'=>$frontend,  
  11.     'viewPath'=>$backend.'/views',  
  12.     'controllerPath'=>$backend.'/controllers',  
  13.     'runtimePath'=>$backend.'/runtime',  
  14.     'import'=>array(   
  15.         'application.models.*',  
  16.         'application.components.*',  
  17.         'backend.models.*',  
  18.         'backend.components.*',  
  19.     ),  
  20.     //'params'=>CMap::mergeArray(require($frontend.'/config/params.php'),require($backend.'/config/params.php')),  
  21. );  
  22. if(isset($frontendArray['components']['user']))unset($frontendArray['components']['user'])  
  23. return CMap::mergeArray($frontendArray,$backendArray);   

这里我们的model是公用的 ,controller和view,runtime是分开的,我们还可以通过命令行对后台进行model和crud,方法如下:

Java代码  

  1. >yiic shell path/to/site/admin.php  
  2. >model Article  
  3. >crud Article  

这样后台对应的controller和view就生成了!
如果只对后台的变量进行配置的话,只需要修改protected/admin下的配置文件就可以了!

后台配置文件与前台配置文件进行数组合并,没有的项自动包含,相同项则将其覆盖 ,例如后台中可使用 'name'=>'网站后台管理系统'仍为自己,是将前台覆盖的结果。

 

前后台分离:前台入口index.php,后台是admin.php。后台可以重用前台,module那个更像是子项目,这个前后台两个像并行的.访问www.test.com/admin.php检测后台配置文件是否正确

 

Yii中处理前后台登录

如果有前台会员登陆和后台管理员登陆分离的需求,则需要为前台和后台的登陆定制两套不同的验证机制,主要是通过定义不同的Session来实现。要解决这个问题就要将前后台使用不同的Cwebuser实例登录。这样就已经做到了前后台登录分离开了,但是此时你退出的话你就会发现前后台一起退出了。于是我找到了logout()这个方法,发现他有一个参数$destroySession=true,原来如此,如果你只是logout()的话那就会将session全部注销,加一个false参数的话就只会注销当前登录实例的session了

Java代码  

  1. Yii::app()->user->logout(false);  

main.php

前台user(Cwebuser)的配置: UserIdentity

Java代码  

  1. 'user'=>array(  
  2.     'class'=>'WebUser',//这个WebUser是继承CwebUser,稍后给出它的代码  
  3.     'stateKeyPrefix'=>'member',//这个是设置前台session的前缀  
  4.     'allowAutoLogin'=>true,//这里设置允许cookie保存登录信息,一边下次自动登录  
  5. ),  

后台user(Cwebuser)的配置: AdminIdentity

Java代码  

  1. 'admin' => array(  
  2.     'class' => 'AdminWebUser', //后台登录类实例  
  3.     'stateKeyPrefix' => 'admin', //后台session前缀  
  4.     "guestName" => "游客"  
  5. ),  

Yii::app()->user//前台访问用户信息方法
Yii::app()->admin//后台访问用户信息方法

Java代码  

  1. Yii::app()->admin->login($this->_identity,$duration);  

http://hudeyong926.iteye.com/blog/1338494

时间: 2024-09-17 04:19:24

Yii 前后台分离 demo的相关文章

Yii2前后台分离及migrate使用(七)_php实例

最近一直忙其它的(其实是懒!),将<深入理解Yii2>看了一遍,一些当初没明白的稍微明了了点,然后又看yii2的图片上传等处理.富文本.restful什么的,但由于没进行到这里,只看也不管用啊,所以还是按照步骤一步步来,先说说前后台分离.(其实普通的内容管理站点用不着下面所说的彻底分离什么的,看看也无妨) 个人感觉前后台的情况有这么几种,首先是前后台是否是用一个验证体系,其次是前后台是否共用一个数据表. 一般来说下面三种比较常用吧: A.共用一个验证体系和一个数据表. B.两个验证体系和共用一

《Web测试囧事》——3.3 前后台分离测试时需要注意测试隔离

3.3 前后台分离测试时需要注意测试隔离 小蔡测试的产品最近需要更新前后台.对于前台来说,要从之前的JavaScript转换成Angular等新技术,显示样式也要从前几年的拟物化风格转换为扁平化风格:对于后台来说,要从之前和公司内部其他产品通用的6套后台模块系统架构,转换成只包含数据库和后端服务器的2套模块系统架构,而且后台技术要用Node.js重写,如图3-5所示. 基本上这个前后台替换的任务,把整个系统都进行了替换,只是仍然保留了之前的功能.进行前后台替换的任务时间紧,所以整个项目组的开发人

Yii框架把模板页面与框架整合

上一节成功将Yii框架引入,并生成了要进行的项目文件夹shop. 进入protected文件夹,开始html模板的整合之旅; protected文件夹中需要注意controller,models以及views三个文件夹,这正是MVC模式所在,将html模板与Yii 框架整合的关键也在于此.其中controller是控制器,控制器中的文件可以设置class方法,然后class方法访问对应的views中的视图. 比如controller中有SiteController.php这个控制器:  代码如下

小网站架构优化-提升抗并发能力:子应用程序分离方案

前言: 标题为啥要加个"小",只因为上一篇文章"小网站架构优化:从100并发抗到4000并发",带了个"小"字,所以这篇也顺流加个"小"了. 大意"小"是特指秋色园(流量小,服务器配置低)的意思,毕竟文章都是从实战后才写出来的.   关于现实网站的抗并发实情: 由于每个网站的性能点,最后都离不开抗并发这一话题.   也许,网站本身并没有那么多并发访问,但为何还要抗并发? 因为现实不是每个人都是善良的,商业竞

视觉设计研究:网页前端视觉设计的内容

本文是关于视觉设计的研究类文章,说的很有深意很精彩,本站截取关于网页前端视觉设计的内容,希望大家从中找到一些设计趋势与灵感. 3D 效果的网站在浏览3D效果Flash网站时,会不自觉被惊人的效果迷住.网站的设计者和开发者为网站提供了丰富的内容,震撼的视觉体验和让用户难以置信的互动效果,令人印象深刻. 像素级完美细节文字的布局和排版网站的布局排版,是一门艺术,可以通过不同图片,文字,段落等元素的排列组合,体现想要表达的重点及细节,从而使用户自然接受信息!可用范围: 门户,活动,广告场景化运用真实场

某大型银行深化系统之四:系统架构

一.逻辑架构 某大型银行深化系统的整体逻辑架构是依据平台的建设目标进行设计的,按照主流技术标准采用分层的技术架构,在Java EE.SOA等标准规范体系下,将最基本的以及共性的信息处理.流程调度.优先级.权限.路由等相关的功能作为平台运维的核心层,以"工厂化"."流水线"的指导思想建立起数据录入.凭证登记.影像扫描.传输.验印.OCR识别.安全加密.监控等等可共享的业务服务模块,并最终仅仅通过业务流程定义.客户化模块定制等简单的工序,就可以实现业务服务模块的合理调度

《Web测试囧事》——导读

前 言 为什么要写这本书 1)人不能像走兽那样活着,应该追求知识和美德.--但丁 2)助人为乐,人生一美德. 我们4个作者加起来年龄过百,而且有着年超半百的工作经验,算起来也是测试领域的老鸟了. 根据上面的1)和2),我们得出一个很重要的结论: 经过这么多年在工作中不断总结经验,时不时与Bug斗智斗勇,最后提炼出来的经验,我们希望能分享给更多的人,更重要的是能抛砖引玉,引发对更优秀的工作方式和实践的思考. 为什么需要看这本书 怎样判断你是否需要这本书?以下场景,如果8条以内你都似曾相识,那么请看

Swagger介绍-一套流行的API框架

简介   号称:世界最流行的API框架 官网:http://swagger.io/ 解决什么问题:在前后台分离的开发模式中,减小接口定义沟通成本,方便开发过程中测试,自动生成接口文档. 实例代码位置:https://github.com/pumadong/cl-roadshow/tree/master/roadshow-swagger   swagger使用方式   第一种 定义YAML文件,然后可以生成各种语言的代码框架,对于后台程序员来说,较少人会愿意写出一堆YAML格式. 第二种 swag

java+echarts开发流程详细说明详解

echarts官方文档: http://echarts.baidu.com/doc/doc.html#简介 ECharts,缩写来自Enterprise Charts,商业级数据图表,一个纯JavaScript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底层依赖轻量级的Canvas类库ZRender,提供直观,生动,可交互,可高度个性化定制的数据可视化图表.创新的拖拽重计算.数据视图.值域漫游