NetBeans 7.0上的快速版本和
PHP的自动完成功能;
我试图弄清楚(如果可能的话)如何强制在类中实现的__get()返回(引用)某个类型,该类型与实现__get()的类相同.
现在,我有(在视图中):
/** * @param string $key * @return View */ public function __get($key){ return $this->getView($key); }
像这样访问:
$view->foo-> // should populate with methods from View ^
现在我一直在阅读@property,但我不确定这对我正在做的事情是否正确.另一件事是(如果可能的话,这将是一个很好的功能)通常是嵌套的视图,所以在我的实现中看到这个并不罕见:
$view->foo->bar->baz-> // should populate with methods from View ^
关于如何强迫这个,或者我被卡住的任何想法?
更新:
所以@property似乎正朝着正确的方向前进,但似乎并没有支持通配名称.因此,要详细说明我的问题,有没有人知道任何NetBeans插件,或者没有文档(或者很难找到)PHPDoc语法来支持通配符@property名称?
我正在考虑以下方向之一:
/** * @property View * * @property View ... * @property View $var,... */
Netbeans可以使用@property为您提供神奇的功能,如下例所示.
正如您已经想到的那样,您必须在doc块中定义每个属性.
下面列出了您的$x-> y-> z->视图示例的另一种可能解决方案.
复制&将其粘贴到Netbeans中,它将显示Bar类的方法:
<?PHP /** * @property Bar $prop */ class foo { } class bar { public function xyz() { } public function abc() { } } $x = new foo(); $x->prop->
当您将光标移动到此处并按ctrl space时,您将看到:
如果您想要更长的结果链自动完成,您也可以使用
/** @var Viewclass $foo */ $foo = $x->y->z->view; $foo->autoCompleteWorksNow();
代码中的任何位置.