上一篇文章当中已经介绍了关于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的前后台导入含有重复设置,通过设置可以改变,但考虑到,此类情况较少,且需要使用递归合并,而配置文件为常用项,会影响性能,因此仅作一级数组合并功能。
分享到:
相关推荐
YII框架应用
学习如何编写Yii2扩展,以扩展形式编写资源包,实现在不同应用和项目之间重用资源包,且降低维护成本。
YII2.0 支付宝接口完美配置,按照教程做百分百成功,教程链接www.phpman.cn/archives/67.html
商城开发的配置 yii2的 里面是代码可以详细的知道所有
YII配置详解以及开发规范
yii2.0基础和高级应用程序模板两个,不想使用composer安装yii2.0的,就直接下载这个用吧
Yii2 Configloader:从配置文件和环境变量构建配置数组
在工作中整理出的yii RBAC中Srbac的详细安装步骤,附截图。
很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架很好用yii框架
Yii 2和PHP Web应用程序开发
Yii2的高级应用程序模板yii-advanced-app-2.0.12.tgz
Yii2的基本应用程序模板 yii-basic-app-2.0.12
yii2.0高级应用程序模板,不想使用composer安装yii2.0的,就直接下载这个用吧
从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。 Yii是一个高性能的PHP5的...
它从一开始就为严谨的 Web 应用开发而精心设计,不是某个项目的副产品或第三方代码的组合,而是融合了作者丰富的 Web 应用开发经验和其它热门 Web 编程框架(或应用)优秀思想的结晶。 $Id: quickstart.what
yii2-easy-wechat:应用于yii2的WeChatSDK
该视频讲解了如何使用PHP框架Yii+UCenter整合Discuz。
yii2-simplechat, yii2应用程序的简单聊天 #Yii2 简单聊天为你的yii2应用程序提供简单聊天##Installation安装这个扩展的首选方法是通过 composer插件。运行php composer.phar require --prefer-dist bub
[Packt Publishing] Yii 快速应用开发高手 (英文版) [Packt Publishing] Yii Rapid Application Development Hotshot (E-Book) ☆ 出版信息:☆ [作者信息] Lauren J. O'Meara , James R. Hamilton III [出版...