【问题标题】:Is there a shorthand for the Project Root path in PHPStorm?PHPStorm 中的项目根路径是否有简写?
【发布时间】:2013-12-13 18:31:23
【问题描述】:

我是使用 PHPStorm 的新手,我正在寻找一个帮助者来使需要文件更容易一些。我在一个嵌套相当深的文件夹中的文件中,我需要 require() PHPStorm 中项目根目录下的一个文件。

在 PHPStorm(或普通的旧 PHP)中是否有一个简写,让我可以做类似的事情

require('{ROOT}/lib/somefile.php');

而不必使用相对路径?

require('../../../../../../lib/somefile.php');

【问题讨论】:

  • define('PROJECT_ROOT', __DIR__); (或类似的)在 index.php (或其他一些 global 文件)的某处。然后只需使用该常量构建路径。显然,这不是对所要求功能的实际答案,而是解决问题的替代方法。 IDE 具有将路径 relative 复制到项目根目录的功能,但它不适用于您的情况,即“相对于当前文件的路径”。
  • 这并不能回答您的问题,但是使用带有自动加载器的 PHP 命名空间将在未来为您节省大量时间。 github.com/php-fig/fig-standards/tree/master/accepted看PSR-0
  • @LazyOne 实际上,我认为“相对于项目根目录的复制路径”正是我所追求的;我该怎么做?
  • 它叫做 Edit | Copy Reference。对于文件——从项目视图或类似的上下文菜单调用(例如,编辑器选项卡上下文菜单..或导航栏上下文菜单)。

标签: php phpstorm


【解决方案1】:

Apache 将文档根文件夹的路径存储在一个环境变量中,您可以像这样从 PHP 访问该变量:

$ROOT = getenv("DOCUMENT_ROOT");

那么你可以说:

require("$ROOT/lib/somefile.php");

如果您使用 IIS,请参阅 this article in helicron.net

【讨论】:

    【解决方案2】:

    如果不是矫枉过正,我建议使用自动装载机。 这是一个来自 symfony 组件的独立组件:http://symfony.com/doc/current/components/class_loader/introduction.html 我确信 Zend 或其他框架具有相同的能力。

    它处理文件的位置,甚至可以消除您手动要求文件的需要。

    重新发明轮子对于生产来说很麻烦,恕我直言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 2011-09-19
      • 2015-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多