Netbeans代码完成跨越类文件

时间:2010-07-30 22:19:54

标签: php netbeans autocomplete

我正在努力让NetBeans 6.8代码完成。它本身似乎没有这样做,但我想知道是否有一些phpdoc魔法或可能有所帮助的东西,因为它似乎非常擅长使用它。

采取以下两个类:

class A {

    public $B;
    public function __construct() {
        $this->B = new D();
    }
    public function C() {
        echo "C";
    }

}

class D {

    public $E;
    public function __construct() {
        // Do stuff.
    }
    public function F() {
        echo "F";
    }

}

现在,假设我$A = new A();,然后开始输入$A->B->

假设两个类都在同一个文件中定义,这非常有效。我得到了E变量和F方法的代码完整建议。

但是,如果这些类分别被分成A.php和D.php,并包含在另一个文件中(比如index.php),那么在包含这两个文件之后做同样的事情只给出无建议。

有什么想法吗?提前谢谢!

3 个答案:

答案 0 :(得分:2)

我认为netbeans不会考虑你所做的实际包含,而是关注项目的包含路径。设置它,它应该工作。原因可能与大多数人无论如何都使用自动加载这一事实有关,并且接下来会有点太多问题。

答案 1 :(得分:2)

在大多数情况下,它适用于我,但如果您遇到问题,请在使用/* @var $variable ClassName */之前使用$A = new A()

您可以使用此快捷方式:键入vdoc并按Tab键。

答案 2 :(得分:1)

延伸到Mchl的anwser:

如果两个文件都在您的项目中,并且您使用了正确的文档块,则代码完成将找到您要查找的内容。举个例子:

/**
 * Class A
 * 
 * @author Yourname <And@Email>
 * @package Example
 */
class A {

    /**
     * @var D
     */
    public $B;

    /**
     * Constructor
     */
    public function __construct() {
        $this->B = new D();
    }

    /**
     * Function C
     * 
     * @return string
     */
    public function C () {
        return "C";
     }

}

在方法或变量之前键入/**并点击右键将触发创建此类块,前提是它已经写好了......