2017-01-31 35 views
1

功能我PhpStorm的项目,我有以下3个文件:PhpStorm:只链接到包含代码

sub.php:

<?php 
    function do_something() { 
     // do something 
    } 
?> 

sub_debug.php:

<?php 
    function do_something() { 
     // do something with debugging 
    } 
?> 

main.php:

<?php 
    include 'sub.php'; 

    do_something(); 
?> 

所以在我的main.php中,我usua lly包括sub.php,如果我需要做一些调试,只能切换到sub_debug.php。所以在任何时候,我只包含这两个PHP文件中的一个,并且只有一个do_something()函数在范围内。

但是,当我在CTRL-点击do_something()调用main.php PhpStorm时,它仍然告诉我,有多个实现并提示我选择一个。

是否可以将PhpStorm配置为仅链接到include -d代码而不是项目中的所有PHP文件?

回答

2

PhpStorm在处理定义时没有考虑include/require声明 - 它假定(为了方便和性能的原因)所有全局实体(如函数/类等)总是可以访问的(例如类可以自动加载..或必要的文件与功能包括/需要在另一个地方)。


想想这种情况:在您的main.php您包括其他文件(如include 'another.php';),并在该another.php文件调用do_something();

考虑到another.php没有任何include/require语句 - IDE应该如何确定哪些do_something();要去这里?

使用目前的方法,它在两种情况下都提供相同的用户体验。


在任何情况下:https://youtrack.jetbrains.com/issue/WI-4095似乎与您的请求有关。

请考虑观看此票和相关票(str/vote/comment)以获取有关任何进度的通知。