【问题标题】:PHPStorm PHPDoc #@+ syntax not working to define multiple vars of same typePHPStorm PHPDoc #@+ 语法无法定义多个相同类型的变量
【发布时间】:2015-02-06 21:30:06
【问题描述】:

我正在使用 PHPStorm 上的大型模型。我正在尝试最小化我的注释。

我想转这个

Class Stack 
{
    /** @var string */
    public $foo;
    /** @var string */
    public $bar;
    /** @var int    */
    public $foobar;
}

进入这个:

Class Stack 
{
    /** @var string */ //for both vars
    public $foo;
    public $bar;
    /** @var int    */
    public $foobar;
}

我找到了#@+ 语法来定义多个变量,但似乎不起作用。也许有解决方法?

非常感谢。

顺便说一句,我可以告诉 phpstorm $this->MyModel 是 MyModel 类型吗?比如:

/** @var $this->MyModel MyModel **/
$this->MyModel

因为 CodeIgniter 将所有模型放入控制器的参数中。

【问题讨论】:

    标签: php phpstorm phpdoc


    【解决方案1】:

    恐怕还没有看到任何IDE知道如何识别/*#@+/的docblock模板语法。

    至于 $this->MyModel,您可以尝试在使用 $this->MyModel 的那个类上使用@property 标签。

    虽然据报道有些 IDE 可以识别 @var 语法来在 local 变量上设置数据类型:

    /** @var \MyModel $model */
    $model = $this->MyModel;
    

    我认为它不适用于这样的类属性。

    【讨论】:

      【解决方案2】:

      为什么不能在类的 PHPDoc 块中用@property 声明它?

      /**
       * @property myModel MyModelClass
       */
      class Test
      {}
      
      $t = new Test();
      $t->myModel->[CTRL+Space will return available methods];
      

      无论如何最好在类中手动声明属性。只要让它透明。

      对对象使用组注释真的很奇怪。我没有这样的练习。 但请随意使用类似的代码:

      /**#@+
       * Test
       *
       * @var int
       */
      protected $_aa = 1;
      protected $_aa2 = 2;
      /**#@-*/
      

      【讨论】:

        猜你喜欢
        • 2016-10-18
        • 2013-10-13
        • 2018-01-16
        • 1970-01-01
        • 2016-09-27
        • 2018-08-19
        • 2015-07-12
        • 1970-01-01
        • 2012-12-22
        相关资源
        最近更新 更多