【问题标题】:$_SERVER['DOCUMENT_ROOT'] leads to unresolved paths in PHPStorm$_SERVER['DOCUMENT_ROOT'] 导致 PHPStorm 中的路径无法解析
【发布时间】:2014-07-13 17:19:43
【问题描述】:

我目前正在 PHPStorm 中编写一个项目,并且在编辑器解析以服务器文档根目录为前缀的路径时遇到问题。这方面的一个示例行可能是:

require_once($_SERVER["DOCUMENT_ROOT"] . "/file.php");

这会在服务器上进行评估,并且页面构建正确。然而,PHPStorm 抱怨说“找不到路径'file.php'”。我调查了这个问题,并在网上找到了概述这种情况的线程,例如this。我已尝试按照建议设置资源根,但没有运气。任何有关为什么会发生这种情况的帮助或指导将不胜感激。谢谢!

编辑:文档根目录评估为我用于在本地 Apache 实例上调试的笔记本电脑上的本地驱动器 - “/Users/Me/PhpstormProjects/MyProject”。该路径在 PHPStorm 中也被设置为 Resource Root。

【问题讨论】:

    标签: php phpstorm


    【解决方案1】:

    不支持评估$_SERVER["DOCUMENT_ROOT"],目前无法以某种方式进行设置。

    http://youtrack.jetbrains.com/issue/WI-3321 -- 观看/加注星号以获得进度通知。


    如果您愿意稍微更改您的代码 .. 您可以使用这种方法(如果您有单点进入您的应用程序效果最佳 - 例如,所有请求都通过 index.php 路由或类似的):

    • 在那里定义一些常量(例如define('DIR_ROOT', __DIR__);——因为index.php通常放在网站根目录下,它将指向与$_SERVER["DOCUMENT_ROOT"]相同的文件夹)
    • 在任何其他文件中使用它,即require_once(DIR_ROOT . "/file.php");

    如果您以这种方式包含类——也许您应该改用自动加载器(无需手动执行此操作)?


    更新(2015 年 5 月 26 日):

    $_SERVER["DOCUMENT_ROOT"] 从 PhpStorm v8.0.3 开始支持并且它已解析到项目根目录,因此如果您的 Web 服务器根目录位于实际的子文件夹中(例如 /some/path/project_root/www),它将无法解析正确。

    【讨论】:

    • 天哪,我猜它解决了。令我惊讶的是,包含语句不支持 DOCUMENT_ROOT,但我想他们一定有他们的理由。我将研究自动加载器。谢谢!
    • 嗯...... IDE 端的DOCUMENT_ROOT 是什么......这可能与远程(实际服务器)上的完全不同。它与项目根目录相同..还是某个子文件夹(非常常见的方法)。如果第二个——当前 IDE 根本没有设置(你不能告诉 IDE——这是我的网站根目录;有资源根目录……但它们有点不同,每个项目都有多个)。也许他们会以某种方式实现对此的支持......
    • 我非常有信心他们指向同一个位置(PHPStorm 项目文件夹),但我如何检查 IDE 端以确保?如果您不知道,我将不得不做更多的谷歌搜索,因为快速搜索一无所获。再次感谢。
    • “我非常有信心他们指向同一个位置”。你错过了这里的重点:)。它可能对您指向相同的位置..但对我而言不同(几乎在我的所有项目中,网站根目录都是一个单独的子文件夹——更好的安全性、内容分离等)。并且无法配置它.. 开发人员没有花时间解决这个问题。在任何情况下:目前 IDE 不会以任何方式评估数组/变量值——只有常量。
    • 啊哈哈抱歉我明白你在说什么。感谢您的帮助!
    【解决方案2】:

    http://php.net/manual/en/ini.core.php#ini.include-path,将文档根添加到包含路径(echo $_SERVER["DOCUMENT_ROOT"];

    也可以在运行时使用 http://php.net/manual/en/function.set-include-path.php 执行此操作

    可能还想看:http://www.jetbrains.com/phpstorm/webhelp/configuring-include-paths.html

    【讨论】:

    • 这是评论而非答案
    • 请将此移至评论,我会尽快回复您。非常感谢!
    • 我原本打算对原始问题发表评论,但显然我需要 50 个代表才能做到这一点..
    • 啊,在那种情况下,我不确定你应该做什么,我会留给你。无论如何,我在问题本身中添加了您要求的详细信息。
    • 我试过这些东西,不幸的是 PHPStorm 仍然无法识别 DOCUMENT_ROOT 路径。
    【解决方案3】:

    最新版本的 PHPStorm EAP 修复了这个错误。

    您可以在此处获取最后一个 EAP:https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program

    【讨论】:

      【解决方案4】:

      2020 年 PHP 风暴

      文件 -> 设置 -> 语言和框架 -> PHP ->(选项卡)分析

      字段包括分析 -> 在此处输入您的文件夹名称(例如 www)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-12
        • 2015-08-05
        • 2011-12-13
        • 1970-01-01
        • 1970-01-01
        • 2019-04-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多