[Yii Framework] Yii如何实现前后台的session分离
生活随笔
收集整理的這篇文章主要介紹了
[Yii Framework] Yii如何实现前后台的session分离
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Yii Framework實(shí)現(xiàn)前后臺(tái)frontend,backend分離的方法有幾種,總結(jié)如下:
1. 分開入口文件
目錄結(jié)構(gòu)
index.php admin.php assets/ ...其它目錄 protected/config/main.phpcomponents/controllers/...其它目錄 admin/config/main.phpcomponents/controllers/...其它目錄網(wǎng)站正常的入口文件是index.php,我們加多一個(gè)admin.php用來處理后臺(tái)事務(wù)
// index.php: require('path/to/yii.php'); Yii::app()->createWebApplication('protected/config/main.php')->run(); // admin.php: require('path/to/yii.php'); Yii::app()->createWebApplication('protected/admin/config/main.php')->run();protected/admin/config/main.php的代碼如下
$backend = dirname(dirname(__FILE__)); $frontend = dirname($backend); Yii::setPathOfAlias('backend', $backend); $frontendArray = require($frontend.'/config/main.php'); $backendArray = array('name'=>'網(wǎng)站后臺(tái)管理系統(tǒng)','basePath' => $frontend,'controllerPath' => $backend.'/controllers','viewPath' => $backend.'/views','runtimePath' => $backend.'/runtime',// autoloading model and component classes'import'=>array('application.models.*','application.components.*','application.extensions.*','application.extensions.nestedset.*','backend.models.*','backend.components.*', ),'components'=>array('user'=>array(// enable cookie-based authentication'allowAutoLogin'=>true,),),// main is the default layout//'layout'=>'main',// alternate layoutPath'layoutPath'=>dirname(dirname(__FILE__)).DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR.'layouts'.DIRECTORY_SEPARATOR, );return CMap::mergeArray($frontendArray, $backendArray);2. 后臺(tái)admin作為一個(gè)module存在
目錄結(jié)構(gòu)如下
protected/commands/components/...其它目錄modules/admin/assets/components/controllers/...其它目錄可以通過設(shè)置user這個(gè)組件來實(shí)現(xiàn)前后臺(tái)的session id分開
protected/modules/admin/AdminModule.php
public function init() {//...其它代碼Yii::app()->setComponents(array(//...其它組件設(shè)置代碼'user' => array('stateKeyPrefix' => '__admin__',//設(shè)置session前綴,以分開不同module),)); }3. 使用架構(gòu)分離
其實(shí)這個(gè)跟第一種方法類似,目錄結(jié)構(gòu)如下
backend/components/ config/environments/main-private.php *main-prod.phpparams-private.php *params-prod.phpmain-env.php *main-local.php *main.phpparams-env.php *params-local.php *params.phptest.php controllers/SiteController.php... extensions/behaviors/validators/lib/models/FormModel.php...modules/runtime/ *views/layouts/site/widgets/www/assets/ *css/images/js/themes/index.php.htaccess common/components/config/environments/params-private.php *params-prod.phpparams-env.php *params-local.php *params.phpdata/extensions/behaviors/validators/lib/Behat/Pear/Yii/Zend/messages/models/widgets/ console/commands/components/config/environments/lib/migrations/models/runtime/ *yiic.php frontend/components/config/environments/main-private.php *main-prod.phpparams-private.php *params-prod.phpmain-env.php *main-local.phpmain.phpparams-env.php *params-local.php *params.phptest.phpcontrollers/extensions/behaviors/validators/lib/models/ modules/ runtime/ *views/layouts/site/www/assets/ *css/files/images/js/less/index.phprobots.txt.htaccess tests/bootstrap/FeatureContext.phpYiiContext.phpfeatures/Startup.featurebehat.ymlINSTALL.md README.md runbehat runpostdeploy yiic yiic.batgithub上面有這樣一個(gè)demo架構(gòu),推薦那些有自己服務(wù)器的人采用這種架構(gòu),具體地址:https://github.com/clevertech/YiiBoilerplate
?
Have fun with Yii!
轉(zhuǎn)載于:https://www.cnblogs.com/davidhhuan/archive/2013/05/04/3060425.html
總結(jié)
以上是生活随笔為你收集整理的[Yii Framework] Yii如何实现前后台的session分离的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Struts 2+Spring 3+Hi
- 下一篇: 当你用钥匙开不开门时