【问题标题】:Netbeans type-hinting inside of an include包含内的 Netbeans 类型提示
【发布时间】:2012-12-24 00:25:42
【问题描述】:

所以以下是一个奇怪的问题,虽然我确信人们会指责我在这种行为的发生方式上存在不良做法,但为了我正在从事的项目,这是用例,我很想知道我是否遗漏了什么。

我有以下情况

 class foo()
 {
      private $_bar;

      public function __construct($bar)
      {
           $this->_bar = $bar;
      }

      public function doStuff()
      {
           include('doStuffCode.php');
      }
 }

doStuffCode.php:

 $this->_bar->(this is where I'd like to get some type hinting)

我曾尝试加入/* var $this->_bar Bar */,但这似乎对我没有任何帮助。似乎我无法向特定的类变量添加类型提示。目前的解决方法是设置一个名为 $bar 的临时变量,在其上设置类型提示,然后使用它来获取我正在寻找的方法并将它们复制回正确的上下文中。

我很好奇我是否只是在尝试一些错误,做一些不受支持的事情,误解了我应该如何声明 javadoc,或者对这种类型提示应该如何工作有一个根本性的误解。

感谢您的帮助

【问题讨论】:

    标签: php netbeans type-hinting


    【解决方案1】:

    需要在类中定义$_bar的类型

      class foo()
      {
            /**
             * @var Bar
             */
            private $_bar;
    
            public function __construct($bar)
            {
                 $this->_bar = $bar;
            }
    
            public function doStuff()
            {
                 include('doStuffCode.php');
            }
       }
    

    然后在您包含的文件中提示:

    /* @var $this foo */
    

    这将是正确的做法。尽管由于包含文件内容的范围,我不确定是否可以通过这种方式提示私有变量。

    【讨论】:

    • 刚刚尝试过,这正是我想要的,尽管你说得对,我无法以这种方式访问​​私有变量。这仍然是我正在寻找的 90%,谢谢
    • 是的,几个月前我对此进行了很多研究,这是唯一的方法,除了声明返回私有变量(只读)的受保护方法。这似乎是几乎所有 IDE 都缺少的功能。这种类型的包含文件通常用作模板,并且是父对象范围的一部分,这使得这个主题非常令人沮丧。
    猜你喜欢
    • 2013-11-22
    • 1970-01-01
    • 2010-12-20
    • 2014-09-14
    • 2012-08-08
    • 2012-04-19
    • 2016-12-31
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多