字体:  

终于解决了PHP多重包含路径问题

net-bin@163.com 发表于: 2008-10-07 09:46 来源: PHPChina 开源社区门户

在很久很久以前,我遇到个问题:PHP多重路径个包含的问题.目录结构如下:

|----- index.php              // 主程序,require('libs/page.class.php')

|----- labs/
|----------- database.class.php                   // 数据库操作类
|----------- page.class.php                    // 分页类,require('database.class.php'),require('../config/sys.php')

|----- config/
|----------- sys.php                 // 配置文件,require('../config.php')
|----------- config.php

多重文件夹交叉多重包含,这样运行是会出错的.
就这个问题,很久很久以后,还是没人回答我.

可是再很久很久以后,我终于找到了方法:
1.在根目录下新建文件 path.php
2.path.php 存放常量,常量代表所有常用路径,如:
               define('ROOT_PATH',dirname(__FILE__));
               define('LIBS_PATH',ROOT_PATH.'/libs/');
               define('CONFIG_PATH',ROOT_PATH.'/config/');
               define('CLASS_PATH',ROOT_PATH.'/class/');
3.需要使用到包含文件的,只需要包含 path.php,再包含这些常量路径就可以了.
4.为了测试,我做了3重复杂的交叉多层包含(乱的自己都看不懂),但是事实证明:没错,就是这样.
5.也解决了移植性问题,因为以前使用过获取根目录,如果系统不是根目录呢?
6.我使用的是Windows,不知道此方法在L下是否行得通.

小弟今天拿出来请大家参考下,不知道大家有没什么更好的解决方法.
另外,小弟刚学Smarty,不知道大家是如何分配Smarty的目录结构的.
举例说明:
我要做个网站,后前台,有后台.
以前我做网站目录如下:

wwwroot/

------------ index.php
------------ 1.php
                 ...
------------ n+1.php

------------ admin/
                ------------- index.php

也就是说,主要分两层:
根目录下的文件基本都是网站前台的文件.
admin目录下的文件都是网站后台的文件.
现在我网站的前后台都想使用Smart做,那么 Smarty的libs文件夹,templates,templatesc_c,cache,config 等这些文件夹,是否都要新建两个?根目录下一个,admin目录下一个?
不知道大家在做的时候,目录结构如何.请指教

最新回复

异度冰晶 at 2008-10-07 09:47:46
一旦定义了绝对路径常量,路径包含本来就不是问题了。
至于目录结构,自己看得懂就行了,没必要追求什么
于安 at 2008-10-07 09:55:09
你这做得还是太复杂了...
继续学习,简化..