12. 安装位置
有时候你需要知道程序的根目录在哪里,但是$_SERVER['DOCUMENT_ROOT']只是web服务器的根目录,如果你的程序安装在它的某个子目录之中,PHP没法自动知道。
你可以定义一个全局变量$ROOT,它的值就是程序的根目录,然后把它包含在每一个脚本文件中。那么,你要包含某个文件,就这样写require_once("$ROOT/lib/base.inc.php");。
13. 目录结构
首先,每个类都应该有自己的独立文件,还必须有一套文件名的命名规则(naming convention)。
软件的目录结构可以采用如下形式:
/ 根目录。浏览器从这个页面开始访问。
/lib/ 包含全局变量(base.inc.php)和配置文件(config.inc.php)。
/lib/common/ 包含其他项目也可以共用的库,比如数据库抽象层。
/lib/model/ 包含值对象类。
/lib/dao/ 包含数据访问对象(DAO)类,以及DAO工厂函数。
/lib/logic/ 包含业务逻辑类。
/parts/ 包含HTML模板文件。
/control/ 包含页逻辑。对于大型程序来说,这个目录下面可能还有子目录(比如admin/, /pub/)。
/lib/ 包含全局变量(base.inc.php)和配置文件(config.inc.php)。
/lib/common/ 包含其他项目也可以共用的库,比如数据库抽象层。
/lib/model/ 包含值对象类。
/lib/dao/ 包含数据访问对象(DAO)类,以及DAO工厂函数。
/lib/logic/ 包含业务逻辑类。
/parts/ 包含HTML模板文件。
/control/ 包含页逻辑。对于大型程序来说,这个目录下面可能还有子目录(比如admin/, /pub/)。
base.inc.php文件中,应该按照以下顺序添加包含文件:
* /lib/common之中经常使用的类(比如数据库层)。
* 配置文件;
* /lib/model之中所有类;
* /lib/dao的之中所有类。
* 配置文件;
* /lib/model之中所有类;
* /lib/dao的之中所有类。
至于那些存放图片、上传文件的目录,这里就省略了。