加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:25:30 所属栏目:PHP教程 来源:网络整理
导读:NetBeans 7.0上的快速版本和 PHP的自动完成功能; 我试图弄清楚(如果可能的话)如何强制在类中实现的__get()返回(引用)某个类型,该类型与实现__get()的类相同. 现在,我有(在视图中): /** * @param string $key * @return View */public function __get($key){
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();

代码中的任何位置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读