定义config.php的PHP路径

时间:2016-08-10 05:06:59

标签: php templates directory

我有一个在XAMPP下运行的现有PHP Web项目,并且在部署之前一直在整理它,以使其更安全,更易于维护。其中一个步骤是将一些关键变量移动到类似于PHP Site Templates

的config.php文件中

我已将config.php文件放在resources文件夹中,如下所示

enter image description here

我现在尝试按如下方式包含配置文件

awk -v n=3 'NR==n{line=$0; next} NR==n+2{print line} 1' file > _file.tmp &&
mv _file.tmp file

结果是找不到TEMPLATES_PATH定义。如果我现在将config.php文件移动到根目录(htdocs),那就是与index.php文件相同的级别,并将include更改为

include 'resources/config.php';
echo ("Template path is ".TEMPLATES_PATH );

TEMPLATES_PATH已定义且网站有效。

我已经尝试了几乎所有绝对路径的变种都无济于事,所以这可能表明我对PHP路径结构的一个或另一个方面缺乏理解,我还没有掌握,所以对此的任何见解都会很大赞赏。

2 个答案:

答案 0 :(得分:0)

include __DIR__ . '/resources/config.php';

顺便说一句,使用作曲家是更好的选择!

"autoload": {
    "files": ["/resources/config.php"]
}

答案 1 :(得分:0)

嗯,这就是神秘的答案。但首先要感谢那些试图提供帮助的人。

如果我发布了config.php文件的内容`

的定义
define("TEMPLATES_PATH", realpath(dirname(__FILE__) . 'resources/templates'));`

会被发现不正确。 config.php文件的文件路径是相对于文件的,而不是目录结构。因此,通过将文件移动到根目录允许上述定义工作,但是当在资源文件夹中时,资源目录已经过度指定。因此,解决方案是确保config.php文件中的规范与项目中该文件的位置有关;因此将上述内容改为:

 define("TEMPLATES_PATH", realpath(dirname(__FILE__) . '/templates'));

解决了这个问题。