8

PHPコードに典型的なファクトリーパターンがあるとしましょう:

abstract class Model
{
    function m()
    {
    }
}

class model_A
{
    function a()
    {
    }
}

class model_B
{
    function b()
    {
    }
}

function modelFactory($name)
{
    $className = 'model_' . $name;
    $object = new $className();
    // ... do some magic stuff ...
    return $object;
}

@var および @return phpdoc タグについては知っていますが、これを入力した後に魔法の方法はありますか:

$x = modelFactory('A');

Eclipse は $x が model_A のインスタンスであることを認識しますか?

次のような文字列の固定ベクトルをどこかに定義できますか:

"modelFactory('A')" => "new model_A()"
"modelFactory('B')" => "new model_B()"

コード補完で処理する前に Eclipse がメモリ内で置き換えるため。

4

4 に答える 4

1

簡単に言えば、これはあなたが望む方法では不可能です。

別のコメントですでに正しく指摘しているよう@varに、編集者がプログラミングパターンの概念を単独で理解することは不可能であるため、コードの完成度を高めるために手動で使用する必要があります。

理論的には可能ですが、型推論のルールを手動で作成することは、逆に思えます(Docblock表記自体に必要な変更は言うまでもありません)。

于 2013-01-17T08:44:30.123 に答える
1

これをサポートする唯一の IDE は PHPStorm です (.phpstorm.meta.php ファイル経由)。

これをサポートする機能リクエストを提出しました。https://bugs.eclipse.org/bugs/show_bug.cgi?id=463110で投票できます。

于 2015-12-10T11:38:24.487 に答える
0

現在、これを実行するIDE /エディターを認識していませんが、PhpStormの同じ機能を追跡しています(現在、PhpStormで「動作中」です):http: //youtrack.jetbrains.com / issue / WI-6027

于 2013-01-26T15:20:22.763 に答える
0

私はほぼ3年以上からEclipseとpdtを使用していますが、あなたの質問に対する完璧な答えはありません

Zend Studio 9 で問題を解決できると思います。コード補完に関しては、pdt よりもはるかに優れています。

http://www.zend.com/en/products/studio/downloads

于 2013-01-11T06:22:11.053 に答える