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