phpstorm没有给出建议

时间:2015-04-02 21:22:08

标签: php phpstorm

我有两个类A和B,A类具有B类对象的属性。当我尝试调用这个B类函数时,phpstorm没有显示任何建议。我这样做

Class A {
    public $b;
    function __construct($b) {
        $this->b = $b;
    }
    public function  someWork() {
        $this->b->anotherWork();
    }
}

Class B {
    public function callA() {
        $a = new A($this);
        $a->someWork();
    }
    public function anotherWork() {
        echo "do somethings";
    }
}

$b = new B();
$b->callA();

键入$ this-> b-> anotherWork()时,phpstorm不会显示任何建议。有没有办法从这个b变量中得到所有B类函数的建议。

2 个答案:

答案 0 :(得分:3)

尝试对函数上的变量和/或PHPDoc进行类型提示,它应该工作得很好。

Class A {
    /** @var B */
    public $b;

    /**
     * @param B $b
     */
    function __construct($b) {
        $this->b = $b;
    }
    public function  someWork() {
        $this->b->anotherWork();
    }
}

答案 1 :(得分:1)

使用类型提示。

在A类中声明你的构造函数:

public function _construct(B $b) {
  // do stuff
}

这也允许PHP在运行时键入检查参数,如果错误则报告错误。