1

私のコードでは、次のようなレジストリ パターンを使用します。

$data = Registry::get('classA')->methodOfClassA($param1, param2);

レジストリ クラスはいくつかのクラスのインスタンスを内部配列に格納するため、コードの任意の場所で、上記の行のような便利な関数のクラス メソッドを呼び出すことができます。

しかし、問題は、次のように入力しても PHP-storm がオートコンプリートしないことです。

Registry::get('classA')->

さらに悪いことに、Mac ボタン (Windows のコントロール ボタンの類似物) を保持しているマウス カーソルをホバーすると、メソッド "methodOfClassA" の宣言に移動しません。

IDE AI はそのようなケースを認識するのはあまり得意ではないと思いますが、難しい方法でそれを行うためのいくつかのトリックがあるのでしょうか? 一部のファイルでクラスとメソッド名をハードコーディングするなど...

せめて、メソッド名をクリックするとメソッド宣言に行くのは理解してほしい…

何かアドバイスはありますか?

4

2 に答える 2

2

http://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata

このリンクはそれをすべて説明しています-たとえば、Magentoなどの複数のプロジェクト/フレームワーク/コード生成ヘルパーで既に使用されています(実際のチケットのコメントに記載されているものもあります)。

他の状況では、DynamicReturnTypePluginプラグイン ( Settings | Plugins | Browse repositories...) を確認することをお勧めします。自分で試したことがないため、どの程度優れているか、高速であるか、遅延が大きいかについてはコメントできません。

于 2013-10-24T11:39:15.513 に答える