Правильное документирование переменной, которая ссылается на класс в phpdoc

Как мне правильно задокументировать это в phpdoc?

У меня есть переменная, которая ссылается на отдельный класс, например:

public $link;
public function link($class) {
   $class = "\\Path\\To\\Class\\$class";
   $this->link = new $class;
}

Буду ли я реализовывать тег phpdoc на уровне переменных или на уровне функций? Наряду с изучением правильной реализации phpdocs, я пытаюсь сделать код узнаваемым в IDE, таких как PHPStorm/Netbeans.


person Devon    schedule 25.12.2013    source источник


Ответы (1)


Этот макет слишком динамичен во время выполнения для документирования. Поскольку невозможно узнать, на какой именно класс указывает аргумент $class, свойство $link не может узнать, какой класс указать в качестве типа данных. Это означает, что ни одна IDE не сможет ничего за вас понять.

Единственный способ «задокументировать» это будет так, что это точно, но не дает вашей IDE ничего для продолжения:

/** @var mixed */
public $link;
/**
 * @param string $class
 * @return void
 */
public function link($class) {
   $class = "\\Path\\To\\Class\\$class";
   $this->link = new $class;
}
person ashnazg    schedule 30.12.2013