Допустим, я
Ниже приведен пример кода
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 намекает и на функции, определенные в дочерних классах.
Постскриптум
Вам нужно открыть этот файл в проекте. Я использую phpstorm 8.0.3, создаю новый файл в проекте и вставляю ваш код. Все отлично работает =)
Других решений пока нет …