|
发表于 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、core、libraries、datebase文件夹下可以创建继承CI对应文件夹下的类
core:公共核心类文件夹,比如:创建一个Base_config.php继承CI核心core下的Config.php,就可以重写CI_Config类。
libraries:公共类库文件夹
datebase:公共数据库文件夹
models:公共模型文件夹
helpers:公共函数文件夹
views:公共视图文件夹,其下errors为公共错误视图文件夹
hooks:公共钩子文件夹
index.php:为站点的必经之路,即各站根目录下的index.php文件要引入这个文件。
注:core、libraries、models、datebase下创建的文件,建议文件名首字母要大写,因为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)
|
|