2013-10-24 66 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

是的,但影響很多代碼重寫 –