出于易维护性和IDE类自动完成和成员提示的原因,我在我的项目中使用了PHPDoc。考虑以下示例类:
class my_class {
public $id;
public $name;
public $number;
public function __construct() {
//Do something
}
public function Rename($name) {
$this->name = $name;
}
}
我希望在类声明之前的类文档中记录所有属性($id
,$name
和$number
),然后在每个方法上方(如果需要)放置方法文档。以下是我最终想要的类示例:
/**
* Represents an example class for Stackoverflow
*
* @property int $id The id of the object
* @property string $name The name of the object
* @property int $number The number of the object
*/
class my_class {
public $id;
public $name;
public $number;
public function __construct() {
//Do something
}
/**
* Renames the object
* @param string $name Name to rename object
*/
public function Rename($name) {
$this->name = $name;
}
}
这正是我喜欢作为文档的内容,但Netbeans的自动完成无法正常运行,因为它会将每个属性列出两次。例如,如果我开始输入
$my_class_object->i
,自动完成将列出两个$id属性:一个是根据我的PHPDoc描述的,另一个是描述为未知变量的“未找到PHPDoc”。有一个解决Netbeans问题的解决方案-在每个属性上方添加
@var
PHPDoc块,但我认为这会使我的类变得过于混乱,特别是一些具有10个以上属性的类。是否有一个[好的]解决方案来解决我的两个问题(清晰的文档,正确的Netbeans提示),或者我是否在错误的方法上进行操作?