The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 项目目录结构 ]

刚刚新建好的应用程序具有如下的目录结构:




说明:如果创建应用程序时选择了不同的应用程序部署方式,那么目录结构看上去会有所不同,不过这个不同的只是入口文件位置不同而已。


一、顶层目录结构


应用程序顶层每个目录的详细说明:

Common
保存项目开发过程中的公用文件,比如函数库,其它第三方文件等。

Conf
保存项目开发过程中的所有配置文件。

Html
保存项目的Html静态化文件。

Lang
保存项目开发过程中的语言包文件。

Lib
项目核心类文件,包含视图View、模型Model、Widget、控制器Controller等类。

Public
保存项目开发的共用文件,如数据库备份、上传附件。

Runtime
项目运行时目录,包括Cache(模板缓存)、Temp(数据缓存)、Data(数据目录)和Log(日志文件)子目录。

Tpl
项目模板目录,支持模板主题。

index.php
项目入口文件(可以使用其他名称或者放置于其他位置)

上面的只是默认方式,项目下面的目录名称和结构是可以重新定义的。其实项目目录并不需要开发人员手动创建,只需要定义好项目的入口文件之后,系统会在第一次执行的时候自动生成项目必须的所有目录结构(前提是项目目录具有可写权限,这点在Linux环境下面需要注意)。生成项目所有目录结构,也可以使用Web Tools图像化工具创建,前面我们已经说了。

可以看出DoYouHaoBaby的目录结构更加便于部署和配置,因为只有Runtime目录和Conf( Conf/~Config目录需要保存项目的配置文件 )才是需要具备可写权限的,在Linux环境下面可以更加快速的部署和配置目录权限。


二、部署目录(前面说过,这里再强调一下)


当我们实际部署网站的时候,目录结构往往由于项目的复杂而变得复杂。我们推荐的部署目录结构如下:

DoYouHaoBaby系统目录(下面的目录结构同上面的系统目录)

Home项目目录(下面的目录结构同上面的应用目录)

Admin后台管理项目目录

…… 更多的项目目录

index.php 网站的入口文件

admin.php 网站的后台入口文件


如果采用分组模块的话,可以简化为一个项目目录

DoYouHaoBaby系统目录(下面的目录结构同上面的系统目录)

App项目目录

Public网站公共目录

index.php 网站的入口文件

 
项目的模板文件还是放到项目的Tpl目录下面,只是将外部调用的资源文件, 包括图片 JS 和CSS统一放到网站的公共目录Public下面,分Images、Js和Css子目录存放,如果有可能的话,甚至也可以把这些资源文件单独放一个外部的服务器远程调用,并进行优化。

这样部署的好处是系统目录和项目目录可以放到非WEB访问目录下面,网站目录下面可以只需要放置Public公共目录和index.php入口文件(如果是多个项目的话,每个项目的入口文件都需要放到WEB目录下面),从而提高网站的安全性。


三、Lib目录详解


上述目录中,Lib 目录中的子目录需要详细说明:

如图:


Action
这个目录保存了控制器的代码。每一个控制器文件的命名方式都是“控制器名Controller.class.php”,文件名区分大小写。例如 index 控制器的对应文件是 Lib/Action/IndexController.class.php。

说明:事实上,DoYouHaoBaby 的所有文件都区分文件大小写,程序开发过程要注意区分,这可以避免在 Linux/Unix 服务器上出现文件名大小写导致的错误。DoYouHaoBaby 应用程序除了第三方库文件,其他文件也全部是首字母。

Model
模型代码所在目录,Lib/Model 目录中是模型的目录。模型文件的命名方式是“模型类名称Model.class.php“,文件名同样是首字母大写。

View
模型代码所在目录,Lib/View 目录中是视图的目录。模型文件的命名方式是“视图类名称View.class.php“,文件名同样是首字母大写。

Widget
模型代码所在目录,Lib/Widget 目录中是Widget的目录。Widget文件的命名方式是“Widget类名称Widget.class.php“,文件名同样是首字母大写。


说明:很显然,Lib 目录下面的命名遵循一致性,你必须按照上面的习惯来做,否则就会访问不到数据。


好了,关于项目的目录,我们就介绍到这里结束了。