我们正在尝试创建一个对象,其中的方法可以通过eclipse PDT或Zend Studio自动完成,但我们陷入了困境,我想问你。
问题是; Eclipse无法使用下面的代码到达类的方法;
class Soup {
private static $_obj;
public function __construct(){}
public static function getObj($objName){
if(isset(self::$_obj)) {
return self::$_obj;
} else {
self::$_obj = new $objName;
return self::$_obj;
}
}
}
class Foo extends Obj {
}
class Obj {
public function test() {}
}
// This is what we are trying to reach;
Soup::getObj('Foo')->test();
在PHP中没有问题,但在Eclipse PDT或Zend Studio中,自动完成没有完成 - > test()部分。是否有代表Eclipse PDT的解决方案,还是有另一种方法来创建该类?
答案 0 :(得分:2)
所有(大多数)IDE都使用docblock来获得更高级的自动完成功能,它与Zend Studio和Eclipse相同。一个好的docblock不仅可以使你的代码有良好的文档记录和phpdoc-able,还可以为你提供更好的代码帮助!
答案 1 :(得分:1)
你做不到,这不是IDE的问题。
php中的(与java不同)你不知道函数的返回类型。所以对于php来说,不可能知道Soup:getObj('Foo')
会返回什么......可能是一个对象,也许是一个数组,或者它可能不会返回任何东西
在Netbeans中你可以通过在函数中添加一个文档来告诉他函数返回一个Foo对象来帮助他
希望这有助于