我有一个在XAMPP下运行的现有PHP Web项目,并且在部署之前一直在整理它,以使其更安全,更易于维护。其中一个步骤是将一些关键变量移动到类似于PHP Site Templates
的config.php文件中我已将config.php文件放在resources文件夹中,如下所示
我现在尝试按如下方式包含配置文件
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路径结构的一个或另一个方面缺乏理解,我还没有掌握,所以对此的任何见解都会很大赞赏。
答案 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'));
解决了这个问题。