2013-10-24 38 views
1

在我的代码使用注册表模式类似:在内部数组一些类PhpStorm支持注册表模式

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

注册类存储实例,所以在我的代码的任何地方,我可以拨打电话进行方便的类方法功能如上所述。

但是,问题是,当我输入PHP风暴不会自动完成:

Registry::get('classA')-> 

而且,这更糟糕的是,它并没有去法“methodOfClassA”的声明时我将鼠标悬停鼠标光标控制按钮(窗口上的控制按钮的模拟)

我想,IDE AI不太好识别这种情况,但也许有一些技巧难以做到这一点?硬编码类+方法名在某些文件等等...

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

有何意见?

回答

2

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

以下链接介绍了这一切 - 它已经由多个项目/框架/代码生成助手,像例如Magento(其他一些可以在实际票证的评论中找到)。

对于你可能想看看DynamicReturnTypePlugin插件(Settings | Plugins | Browse repositories...)其他情况 - 没有尝试过自己,因此不能发表评论有多好/快/ laggy它。

+0

第一个链接是真棒工作解决方案!泰! –

0

您可以随时显示在两个步骤变量类型:

/** @var $foo MyClass */ 
$foo = $this->get('MyClass'); 
$foo->bar(); // autocomplete works 
+0

是的,但影响很多代码重写 –