项目结构
<h1>根目录结构</h1>
<p>项目根目录
├─ app 应用目录
├─ base 项目基础文件目录(放置基类,数据库结构文件等)
├─ common 项目配置目录(放置配置文件,函数文件等)
├─ core 框架核心目录
├─ public 公共目录(入口文件,css,js,img等资源文件)
├─ tmp 临时文件目录(运行时的模板编译文件,缓存文件等)
└─ libs 暂时没用</p>
<h2><font color=red>根目录说明:</font></h2>
<p>全部结构写在一起看起来会有点乱,所以拆开来写</p>
<ul>
<li>
<p>core 是框架核心,不关心的可以无视</p>
</li>
<li>
<p>app 是应用目录,与之对应的入口文件,一个应用对应一个入口文件</p>
</li>
<li>
<p>base 是基础文件,例如数据库结构的文件,控制器基类,模型基类等等
应用目录内的base目录文件会覆盖根目录内base目录文件</p>
</li>
<li>
<p>common 放置项目配置文件,函数文件 等
如果全局只需要一套配置文件和函数文件,可以放在此处,各版本目录下无需再有common目录</p>
</li>
<li>
<p>public 放置项目入口文件,用户需要加载的资源文件等
<strong>除了浏览器需要直接访问的文件外,<font color=red>请不要放置其它文件</font></strong></p>
</li>
<li>tmp 临时文件目录,内容删除后会重新生成</li>
</ul>
<h1>core目录结构</h1>
<p>core
└─ v1.0 版本目录
├─ ext 框架扩展类目录
│ ├─ ttfs 字体文件目录
│ ├─ db.class.php db封装类
│ ├─ upload.class.php 文件上传类
│ └─ verimg.class.php 验证码类
├─ tpl 框架模板目录
│ └─ 404.html 404错误页面模板
│ └─ 500.html 500错误页面模板
├── z 框架核心目录
│ ├─ cache.class.php 缓存类
│ ├─ pdo.class.php pdo封装类
│ ├─ view.class.php 视图类
│ └─ z.class.php [包含初始化,路由,debug]
└──core.php 框架入口文件</p>
<h2><font color=red>core目录说明:</font></h2>
<p><strong>框架核心的版本目录(v0.1)和项目版号本<font color=red>无关</font>
这里可以放置多个不同版本的框架核心目录:例如v1, v2,v3 等等,这样就可以在入口文件处方便的切换不同的框架版本,当然也可以不要这个目录,只要修改入口文件处的core.php的路径,使之可以正常加载即可</strong></p>
<h1>app目录结构</h1>
<p><strong>文件带 <font color=red>+</font> 为可选位置</strong></p>
<p>app 应用目录
├─ admin admin 应用目录
│ ├─ functions.php<font color=red>+</font> 函数文件
│ ├─ config.php<font color=red>+</font> 配置文件
│ ├─ router.php<font color=red>+</font> 路由文件
│ ├─ *.base.php<font color=red>+</font> 数据库结构文件
│ └─ v1.0 版本目录
│ ├─ base 基础文件(放置基类,数据库结构文件等)
│ ├─ common 应用配置目录(放置配置文件,函数文件,路由等)
│ ├─ ctrl 控制器目录
│ ├─ model 模型目录
│ ├─ lib 自定义目录
│ └─ view 模板目录
│ └─ default 默认样式目录
│ │ ├─ index index 控制器的模板目录
│ │ └─ login 更多控制器的模板目录...
│ └─ xxx 更多自定义样式目录...
└─ index 更多应用目录...</p>
<h2><font color=red>app目录说明:</font></h2>
<ul>
<li>
<p>各个版本需要共用的路由,配置,函数等文件,可以放在版本目录之外
否则需要放置在对应版本目录下的common目录</p>
</li>
<li>
<p>admin 是“admin应用”的目录,我们称之为“应用名”,与之对应的是public目录下的“admin.php”入口文件
<strong>这里目录名和入口文件名<font color=red>不一定相同</font>,可在入口文件内指定应用名(也就是目录名)
例如:define('APP_NAME', 'admin1'); 那么目录名就应该是 admin1</strong></p>
</li>
<li>
<p>base 是基础文件,例如数据库结构的文件,控制器基类,模型基类等等</p>
</li>
<li>
<p>common 放置项目配置文件,函数文件等</p>
</li>
<li>
<p>public 放置项目入口文件,用户需要加载的资源文件等</p>
</li>
<li>tmp 临时文件目录,内容删除后会重新生成</li>
</ul>
<p><strong>配置文件、路由文件、数据库结构文件等会遵从 <font color=red>内层覆盖外层相同字段数据</font> 的规则
需要注意的是如果某字段的值是<font color=red>数组</font>,那么会<font color=red>覆盖</font>这个数组而不是合并这个数组,但是<font color=red>模块</font>下的配置文件则会合并这个数组内的相同字段数据而不是覆盖</strong></p>
<h1>public目录结构</h1>
<p>public
├─ admin.php admin 应用入口文件
├─ index.php index 应用入口文件
├─ files 自定义附件目录
├─ uploads 自定义文件上传目录
├─ tmp 临时文件目录
└─ res 页面资源目录
├─ admin admin 应用的资源目录
│ ├─ v1.0 v1.0版本的资源目录
│ │ ├─ js js文件目录
│ │ ├─ css css文件目录
│ │ └─ image img文件目录
│ └─ v2.0 更多版本的资源目录...
└─ xxx 更多应用的资源目录...</p>
<h2><font color=red>public目录说明:</font></h2>
<ul>
<li>
<p><strong>此目录除了浏览器需要直接访问的文件外,请<font color=red>不要</font>放置其它文件</strong></p>
</li>
<li>
<p>res 目录下是各个应用的资源目录</p>
</li>
<li>res/应用 目录下是各个版本的资源目录</li>
</ul>
<h1>如果需要使用<font color=red>模块</font>功能请看下面</h1>
<p><strong>规则很简单:就是把<font color=red>原来版本目录下</font>的所有文件都放到一个<font color=red>新建目录</font>下,这个目录就是模块目录</strong>
<strong>然后在配置文件中<font color=red>启用</font>模块功能就可以了</strong></p>
<h1>含<font color=red>模块</font>的app目录结构</h1>
<p><strong>文件带 <font color=red>+</font> 为可选位置</strong></p>
<p>app 应用目录
├─ admin admin 应用目录
│ ├─ functions.php<font color=red>+</font> 函数文件
│ ├─ config.php<font color=red>+</font> 配置文件
│ ├─ router.php<font color=red>+</font> 路由文件
│ ├─ *.base.php<font color=red>+</font> 数据库结构文件
│ └─ v1.0 版本目录
│ ├─ functions.php<font color=red>+</font> 函数文件
│ ├─ config.php<font color=red>+</font> 配置文件
│ ├─ router.php<font color=red>+</font> 路由文件
│ ├─ *.base.php<font color=red>+</font> 数据库结构文件
│ <font color=red>├─ user user模块</font>
│ <font color=red>│</font> ├─ base 基础文件(放置基类,数据库结构文件等)
│ <font color=red>│</font> ├─ common 应用配置目录(放置配置文件,函数文件,路由等)
│ <font color=red>│</font> ├─ ctrl 控制器目录
│ <font color=red>│</font> ├─ model 模型目录
│ <font color=red>│</font> ├─ lib 自定义目录
│ <font color=red>│</font> └─ view 模板目录
│ <font color=red>│</font> └─ default 默认样式目录
│ <font color=red>│</font> │ ├─ index index 控制器的模板目录
│ <font color=red>│</font> │ └─ login 更多控制器的模板目录...
│ <font color=red>│</font> └─ xxx 更多自定义样式目录...
│ <font color=red>├─ bill bill模块</font>
│ <font color=red>└─ xxx 更多模块</font>
└─ index 更多应用目录...</p>
<h1>含<font color=red>模块</font>的public目录结构</h1>
<p>public
├─ admin.php admin 应用入口文件
├─ index.php index 应用入口文件
├─ files 自定义附件目录
├─ uploads 自定义文件上传目录
├─ tmp 临时文件目录
└─ res 页面资源目录
├─ admin admin 应用的资源目录
│ ├─ v1.0 v1.0版本的资源目录
│ │ <font color=red>├─ user user模块的资源目录</font>
│ │ <font color=red>│</font> ├─ js js文件目录
│ │ <font color=red>│</font> ├─ css css文件目录
│ │ <font color=red>│</font> └─ image img文件目录
│ │ <font color=red>└─ bill bill模块的资源目录</font>
│ │ <font color=red>└─ xxx 更多模块的资源目录</font>
│ └─ v2.0 更多版本的资源目录...
└─ xxx 更多应用的资源目录...</p>
<p><strong>模块资源目录相对比较灵活,完全可以按照自己的想法布置结构</strong>
<strong>例如:</strong>
<strong>- 所有模块都使用同一套资源:结构跟不使用模块时的时候一致</strong>
<strong>- 单独提取出公共部分到一个文件夹下(类似一个隐藏模块),其余按照模块布置</strong></p>