【问题标题】:Helping IDE resolve file paths in included files帮助 IDE 解析包含文件中的文件路径
【发布时间】:2012-02-09 13:12:26
【问题描述】:

我有一个标准的前端控制器/引导程序配置,前端控制器位于root/index.php,引导程序位于root/app/bootstrap.php

前端控制器加载带有require_once 'app/bootstrap.php';的boostrap文件。

然后引导程序使用相对于前端控制器的路径加载必要的文件,例如require_once 'model/model.php';

我的 IDE (PhpStorm 3.0.2) 在引导程序中标记文件路径,并显示“无法解析表达式目标...”的警告

是否可以将注释和/或代码添加到引导文件以帮助我的 IDE 识别和解析目录/包含方案?

【问题讨论】:

    标签: php ide comments include-path phpstorm


    【解决方案1】:

    以下应该可以工作。烦人的是,如果你使用 $config->directoryroot,它就不起作用,但是有一个关于 here 的错误开放,所以它应该在未来的构建中自行解决。

    $directoryroot = '/full/system/path/to/docroot';
    
    require_once($directoryroot.'/app/bootstrap.php');
    

    【讨论】:

    • 谢谢 - 很高兴知道错误报告。我对每次提供完整路径的担忧是这会为 PHP 带来额外的工作。我知道,这只是很少的额外工作,但我认为我宁愿忍受丑陋的警告而不是额外的代码。你有没有发现一个足够聪明的 IDE 可以自己解决这个问题?
    • @cantera25 "这为 PHP 创造了额外的工作" ???为 include/require 提供完整路径实际上比相对路径更快,因为文件会立即处理(第一次迭代),而无需检查相对路径(这将被视为至少第二次迭代)。虽然时差很小。
    • 您也可以使用__DIR__ 常量(与当前文件相关)或dirname(__FILE__)(用于较低的PHP 版本兼容性)。
    • 好 - 我很高兴我错了。与从当前路径进行“直接旅行”相比,查找常量/变量的值似乎是合乎逻辑的。感谢您的澄清。
    • 我发现我对这类事情的逻辑/直觉通常是错误的。去哪里才能正确地学习这种语言的细微差别(当然除了这里)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 2014-10-21
    相关资源
    最近更新 更多