Я не знаю, как именно это сформулировать, но мне нужен способ загрузить подсказки типов методов классов. По сути, у меня есть класс base
с функцией get
, которая выглядит так:
class Base {
/**
*
* @param type $i
* @return \i
*/
public static function get($i) {
// make sure it exists before creating
$classes = get_declared_classes();
if (!in_array($i, $classes)) {
if (class_exists($i)) {
return new $i();
}
}
return $i;
}
}
Теперь, например, скажем, у меня был класс с именем test
:
class test {
function derp() {
echo 'derp';
}
}
Я бы создал экземпляр объекта test
примерно так:
$test = base::get('test');
Теперь то, что я хотел бы сделать, это когда я набираю вот так:
$test->
Методы (в настоящее время только derp()) должны быть предложены, я видел документы вокруг SO, но они не работают :(
Странно то, что если я изменю комментарий @return
на имя класса test
, тогда предложения сработают.
НО если все классы не установлены, могут быть созданы экземпляры разных классов, поэтому я попробовал @returns \i
(предложено netbeans). Есть ли способ добиться этого?
РЕДАКТИРОВАТЬ
Причина, по которой мне нужна подсказка типа, заключается в том, чтобы разрешить вызов методов, подобных следующему:
base::get('test')->derp();
new
? - person sectus   schedule 25.06.2014$test = new test;
- person sectus   schedule 25.06.2014base::get('test')->derp();
, но для предложенных методов. - person Darren   schedule 25.06.2014base::get('test')->derp();
используйте(new test)->derp();
- person sectus   schedule 25.06.2014