NetBeans自动完成和PHP;强制__get()类型

前端之家收集整理的这篇文章主要介绍了NetBeans自动完成和PHP;强制__get()类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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();

代码中的任何位置.

猜你在找的PHP相关文章