【问题标题】:Defining PHP Path to config.php定义 config.php 的 PHP 路径
【发布时间】:2016-08-10 14:50:20
【问题描述】:

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

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

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

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

结果是找不到 TEMPLATES_PATH 定义。如果我现在将 config.php 文件移动到根目录(htdocs),即与 index.php 文件处于同一级别并将包含更改为

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

TEMPLATES_PATH 已定义且站点正常运行。

我尝试了几乎所有绝对路径的变体都无济于事,所以这可能表明我对 PHP 路径结构的一个或另一个方面缺乏基本的理解,而我还没有掌握,所以对此的任何见解都会非常重要赞赏。

【问题讨论】:

    标签: php templates directory


    【解决方案1】:

    试试

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

    顺便说一句,使用composer是更好的选择!

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

    【讨论】:

    • 谢谢,但我已经尝试了所有这些。这具有与上述相同的行为。如果我将上面的内容更改为“包含 DIR.'/config.php'”,它将按预期工作。
    • @Alex 我认为你应该发布一张包含 index.php 文件的新图片
    【解决方案2】:

    嗯,这就是谜团的答案。但首先感谢所有试图提供帮助的人。

    如果我把config.php文件的内容贴出来了`的定义

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

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

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

    解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2011-12-16
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多