PhpStorm支持注册表模式

时间:2013-10-24 11:28:12

标签: phpstorm

在我的代码中,我使用了这样的注册表模式:

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

Registry类在内部数组中存储某些类的实例,因此在我的代码的任何地方,我都可以调用类方法来处理上面的方便函数。

但是,问题是当我输入时,PHP-storm不会自动完成:

Registry::get('classA')->

而且,更糟糕的是,当我将鼠标光标悬停在mac-button(窗口上的控制按钮模拟)时,它不会声明方法“methodOfClassA”

我想,IDE AI并不是那么容易识别这样的案例,但也许有一些技巧可以用来做到这一点?硬编码类+某些文件中的方法名称等等......

至少,当我点击方法名称时,我希望它理解去方法声明...

有任何建议吗?

2 个答案:

答案 0 :(得分:2)

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

此链接描述了所有内容 - 它已被多个项目/框架/代码生成助手(例如Magento)使用(其他一些可以在实际票证的注释中找到)。

对于其他情况,您可能需要查看 DynamicReturnTypePlugin 插件(Settings | Plugins | Browse repositories...) - 没有尝试过自己,因此无法评论它有多好/快/迟。

答案 1 :(得分:0)

您始终可以分两步指示变量类型:

/** @var $foo MyClass */
$foo = $this->get('MyClass');
$foo->bar(); // autocomplete works
相关问题