$ _SERVER ['DOCUMENT_ROOT']导致PHPStorm中未解析的路径

时间:2014-07-13 17:19:44

标签: php phpstorm

我目前正在PHPStorm中编写一个项目,并且编辑器解决了以服务器文档根为前缀的路径问题。这个例子可能是:

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

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

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

4 个答案:

答案 0 :(得分:6)

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

http://youtrack.jetbrains.com/issue/WI-3321 - 观看/加注明星以获得有关进展的通知。


如果您愿意稍微改变一下代码......您可以使用这种方法(如果您的单点输入应用程序效果最佳 - 例如,所有请求都通过{{1}路由或者类似的):

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

如果您以这种方式包括课程 - 也许您应该使用自动加载器(不需要手动执行此操作)?


更新(2015年5月26日):

从PhpStorm v8.0.3开始支持

require_once(DIR_ROOT . "/file.php");并且它已解析为项目根目录,因此如果您的Web服务器根位于实际的子文件夹中(例如{{1}它将无法正确解析。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

最新版本的PHPStorm EAP解决了这个问题。

Screenshot working $_SERVER["DOCUMENT_ROOT"]

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

答案 3 :(得分:0)

PHP Storm 2020

文件->设置->语言和框架-> PHP->(制表符)分析

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