Из-за простоты обслуживания и автозаполнения класса 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 Not Found».
Тамэто решение, которое работает для решения проблемы Netbeans - добавьте блок @var
PHPDoc над каждым свойством, однако я думаю, что он излишне загромождает мой класс, особенно некоторые из моих классов, которые имеют свойства 10+.
Isесть [хорошее] решение обеих моих проблем (чистый документ, правильные подсказки Netbeans), или я ошибаюсь?