PHPStorm PHPDoc#@ +语法无法定义多个相同类型的变量

时间:2013-08-12 14:27:34

标签: php phpstorm phpdoc

我正在使用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会将所有模型放在控制器的参数中。

2 个答案:

答案 0 :(得分:3)

我担心我没有看到任何知道如何识别/ * #@ + /的文档模板语法的IDE。

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

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

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

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

答案 1 :(得分:1)

为什么你不能在类的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;
/**#@-*/