0

我正在使用 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 把你所有的模型都放在了控制器的一个参数中。

4

2 回答 2

3

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

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

尽管据报道某些 IDE 可以识别 @var 语法以在局部变量上设置数据类型:

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

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

于 2013-08-12T15:30:59.773 回答
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;
/**#@-*/
于 2014-01-26T23:14:43.610 回答