2017-06-05 6 views
0

IはTreeGenクラス方法run()を有します。PhpStormは、Laravelとautocompletition

しかし、PhpStormはTreeGenクラスでpushEmptyGroupsToTreeを探しているだけですが、私はそれをスーパークラスで定義していないので、それを検出しません。

彼にサブクラスのメソッドを認識させる方法はありますか?

+0

(2017.2)今後のバージョンでは改善されたチャイルド>親関係の検出が含まれるであろう。最新のEAPで確認できます:https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Early+Access+Program –

答えて

2

IDEが正しく動作します。このクラスを抽象宣言するか、ここまたはスーパークラスに抽象メソッドを宣言する必要があります。

UPDATE

方法TreeGenrunTreegen

$treeGen = new TreeGen; 
$treeGen->run(); 

のインスタンスから呼び出すことができ、それは未定義のメソッドへのコールエラーが発生します。

TreeGenが直接呼び出されることは想定されていない場合は抽象的にする必要があります。

1

次のような、それは抽象宣言し、TreeGreenを直接使用することをたくない場合は、次の

abstract class TreeGen implements TreeGenerable { 
// ... 

あなたはその方法を持っている子クラスが必要な場合は、あなたのスーパークラスで抽象として宣言、宣言:

abstract class TreeGen implements TreeGenerable 
{ 
    // ... 
    abstract public function pushEmptyGroupsToTree($numFighters); 
} 

今、あなたはあなたが使用する必要があります。このケースではpushEmptyGroupsToTree同様

0

を実装せずにTreeGenを拡張カントPHPDoctype hinting

そして忘れる `tを:

ide-helper:generate Generate a new IDE Helper file. 
    ide-helper:meta  Generate metadata for PhpStorm 
    ide-helper:models Generate autocompletion for models