PHPDoc, Factory @return type

Допустим, я

  • абстрактный класс с одним абстрактным методом.
  • 2 дочерних класса, которые определяют этот абстрактный метод по-своему.
  • Фабрика, которая возвращает экземпляр одного из 2 дочерних классов на основе аргументов.

Ниже приведен пример кода

abstract class Datalist{
abstract public function render($arg1, $arg2);
}

class Datalist_Table{
public function render($arg1, $arg2){
/* do something here */
}
}

class Datalist_List{
public function render($arg1, $arg2){
/* do something here */
}
}

class DatalistFactory{

/**
* usual stuff
*
* @return Datalist
*/
public static function build($args){
$class_name = 'Datalist_' . $args['type'];
return new $class_name($args['m'][0], $args['m'][1]);
}
}

//in some other file
$list = DatalistFactory::build($args);
$list-> ....

Моя проблема

Моя IDE (PHPStorm) не намекает на $list->render(), Я думаю, это потому, что он был объявлен как abstract,

Вопрос
Что я должен поставить перед @return в PHPDoc для DatalistFactory::build() так что IDE намекает и на функции, определенные в дочерних классах.

Постскриптум

2

Решение

Вам нужно открыть этот файл в проекте. Я использую phpstorm 8.0.3, создаю новый файл в проекте и вставляю ваш код. Все отлично работает =)

завершение кода

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]