搜尋

首頁  >  問答  >  主體

php 鍊式呼叫問題,呼叫到5次之後phpstorm無法提示

1.我定義了一個AR基類,裡面程式碼如下:

abstract class AR extends \PDO {
    abstract public function from($tableName = '');
    abstract public function where($condition = []);
    abstract public function addWhere($condition = []);
    abstract public function orderBy($orderBy = []);
    abstract public function groupBy($groupBy = []);
    abstract public function having($condition = []);
}

2.又寫了一個子類別DB,整合AR。

class db extends AR {
    public function select($field = [])
    {
        // TODO: Implement select() method.
        return $this;
    }

    public function from($tableName = '')
    {
        // TODO: Implement from() method.
        return $this;
    }

    public function where($condition = [])
    {
        // TODO: Implement where() method.
        return $this;
    }

    public function addWhere($condition = [])
    {
        // TODO: Implement andWhere() method.
        return $this;
    }

    public function groupBy($groupBy = [])
    {
        // TODO: Implement groupBy() method.
        return $this;
    }

    public function orderBy($orderBy = [])
    {
        // TODO: Implement orderBy() method.
        return $this;
    }

    public function having($condition = [])
    {
        // TODO: Implement having() method.
        return $this;
    }
}

抽象方法的具體實作裡,都回到了本身。

3.現在我在控制器檔案裡實例化db類,發現能正常呼叫$this->db->select()->from()->where()->queryAll(); 運作不報錯。 queryAll裡可以進行操作。

現在問題是我在phpstorm 裡面寫程式碼的時候,寫前面幾個方法,編輯器可以智慧提示,但是最後一個queryAll就不提示了,如果把這個鏈,刪掉其中一個,就又可以提示了。感覺就像是最多只能提示到 第 4 個呼叫。 但是我用yii的時候,鍊式呼叫 7 次還是能提示的 。

伊谢尔伦伊谢尔伦2821 天前650

全部回覆(2)我來回復

  • 習慣沉默

    習慣沉默2017-05-16 13:04:23

    phpStorm不能辨識queryAll方法回傳值,給不了提示。
    添加註解後, phpstorm可以自動辨識

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:04:23

    @order_c , 你說的方法都沒用,我試過。
    無法貼圖,我在這裡給你發個圖吧

    你看~

    回覆
    0
  • 取消回覆