用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2017|回复: 2
收起左侧

[模型] 多目录如何设置使用公共的配置,用一个database连接?

[复制链接]
发表于 2018-4-14 09:22:39 | 显示全部楼层 |阅读模式
网站设置了手机端,PC端,还有后台,三个目录,但是如何设置三个目录都使用统一配置文件?连接数据库,使用config这些????
发表于 2018-5-6 17:53:13 | 显示全部楼层
这个要看你是怎么分的目录,如果是控制器分目录,配置是可以共享的,如果是多个 CI 应用,那是不支持共享的。
发表于 2018-5-8 16:01:34 | 显示全部楼层
本帖最后由 52lin 于 2018-5-11 11:34 编辑

站点布局可以如下:
        包含common、system、src、logs等主要目录
                common:存放各个多个或所有站点共用的东西
                src:包含各个站点,PC端、手机端、管理后台等等站点
                logs:存放各站的日志信息
                docs:可以存放一些文档,比如sql等等,以便项目管理,比如使用git来管理项目,当然如果代码要上线,这个文件夹要忽略掉了。
        当然这些文件名你可以根据自己喜好来定,都没问题
        


1、common目录结构可以如下,按照CI目录来,方便对应继承:
包含:config、core、database等等文件夹和 index.php 文件
        

1.1、config下可分为:development(开发环境)、production(线上环境),两种环境的配置文件夹,已development(开发环境)为例:
        development下有config.php、database.php、constants.php文件,当然你可以根据自己需求,添加其他名字的公共配置文件。
        config.php:公共配置
        database.php:公共数据库配置
        constants.php:公共常量配置
1.2、corelibrariesdatebase文件夹下可以创建继承CI对应文件夹下的类
        core:公共核心类文件夹,比如:创建一个Base_config.php继承CI核心core下的Config.php,就可以重写CI_Config类。
        libraries:公共类库文件夹
        datebase:公共数据库文件夹
        models:公共模型文件夹
        helpers:公共函数文件夹
        views:公共视图文件夹,其下errors为公共错误视图文件夹
        hooks:公共钩子文件夹
        index.php:为站点的必经之路,即各站根目录下的index.php文件要引入这个文件。
        注:corelibrariesmodelsdatebase下创建的文件,建议文件名首字母要大写,因为window下和linux,你懂的。


2、src目录下为各个站点文件夹,如下:
        图中有:
                admin.xxx.com:管理后台站点
                m.xxx.com:手机站点
                www.xxx.com:PC首页站点

        当然你可以还有其他业务站点。各站点下文件都从下载的CI源码中的applications中复制而来,根据需求增删文件夹,
        可以看到下面admin站点,已删除一些文件夹。可以建议站点根目录root文件夹,其下有一个index.php,好处就是,不让从根目录访问到其他文件夹文件。
        
        如此一来,在admin站点core下创建一个MY_Config.php继承之前创建的Base_Config.php
        (其中【MY_】是站点config文件夹下的config.php里配置的【subclass_prefix】,默认是【MY_】,
        你也根据自己喜好进行更改,比如改成【SOS_】,那MY_Config.php就要更名为SOS_Config.php,类名亦然),MY_Config.php内容可如下:
PHP复制代码
 
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
 
require COMPATH."core/Base_Config.php";
 
class MY_Config extends Base_Config {}
 
?>
 
复制代码

        其中 COMPATH 为common文件夹路径,可在common下的index.php中进行设置,其他继承类似。

3、system目录下就是CI核心代码,如下:
        
       可以看到有2个CI版本,对于类似于这样的多站点布局,旧版本一次性升级为新版本,工程浩大,可以一个一个站点来。

布局demo站点在附件,system/codeigniter下不含CI核心代码。
test.rar (124.92 KB, 下载次数: 2)

本版积分规则