日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[Yii Framework] Yii如何实现前后台的session分离

發(fā)布時間:2025/7/25 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Yii Framework] Yii如何实现前后台的session分离 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Yii Framework實現(xiàn)前后臺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,我們加多一個admin.php用來處理后臺事務(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ǒ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. 后臺admin作為一個module存在

目錄結(jié)構(gòu)如下

protected/commands/components/...其它目錄modules/admin/assets/components/controllers/...其它目錄

可以通過設(shè)置user這個組件來實現(xiàn)前后臺的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)分離

其實這個跟第一種方法類似,目錄結(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.bat

github上面有這樣一個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分离的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。