首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Yii运用目录设计及配置复用

2012-12-20 
Yii应用目录设计及配置复用上一篇文章当中已经介绍了关于YII的组织目录形式,但是经过实践会发现一些问题,

Yii应用目录设计及配置复用

上一篇文章当中已经介绍了关于YII的组织目录形式,但是经过实践会发现一些问题,上文中仅仅解决了,各应用之间共享models,components的问题,但是无法解决配置文件复用。

下面就这一问题进行描述。(原文地址)

/webroot       /protected              /admin                    /config                         main.php                    /models                    /components                    /controllers                    /views                    /runtime             /config                    main.php             /models             /components             /controllers             /views             /runtime             /extensions

依旧使用这样的组织目录形式,在之后的描述当中根目录下的的应用作为frontend,admin为backend,使用别名解析后,application指向protected目录,backend指向admin目录

前台配置文件如下(仅写一部分配置作为示例)

return array('basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..','name'=>'网站前台','language'=>'zh_cn','preload'=>array('log'),        'import'=>array('application.models.*','application.components.*',),?? ? ? )后台配置文件如下$backend=dirname(dirname(__FILE__));$frontend=dirname($backend);Yii::setPathOfAlias('backend',$backend);$frontendArray=require_once($frontend.'/config/main.php');$backendArray=array('name'=>'网站后台管理系统','basePath'=>$frontend,        'viewPath' =>$backend.'/views','controllerPath'=>$backend.'/controllers',        'runtimePath' => $backend.'/runtime','import'=>array('application.models.*','application.components.*',        'backend.models.*','backend.components.*',),);return array_merge($frontendArray,$backendArray);前台配置文件按照单一应用的配置形式即可,后台文件中,将前台文件包含,同时设置backend别名解析,使得所有应用当中application指向protected目录,backend指向admin目录。后台配置文件与前台配置文件进行数组合并,没有的项自动包含,相同项则将其覆盖,例如后台中可使用'language'=>'zh_cn',且'name'=>'网站后台管理系统'仍为自己,是将前台覆盖的结果。当然这样还有重复配置的现象,例如import的前后台导入含有重复设置,通过设置可以改变,但考虑到,此类情况较少,且需要使用递归合并,而配置文件为常用项,会影响性能,因此仅作一级数组合并功能。

热点排行