2011-08-11 8 views
0

私たちは、eclipse PDTやZend Studioでメソッドを自動完成させることができるオブジェクトを作成しようとしていますが、私たちは一点を凝らしておきました。PHPで異常な型キャスト

問題は次のとおりです。 Eclipseは以下のコードを持つクラスのメソッドに到達できません。 PHPで

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(); 

がこれで問題はありませんが、EclipseのPDTやZend Studioで、自動補完が完了しない - >テスト()の部分。 Eclipse PDTに代わってこれに対する解決策があるのですか、あるいはそのクラスを作成する別の方法がありますか?

+0

私はいつもEclipse/Zendでこの問題を抱えています...複雑な点があります。オートコンプリートモジュールは到達可能ですが、これ以上は何もありません。 –

+4

Eclipseは分かりませんが、NetBeansで@returnを使ってPHPdocコメントを追加すると、作業が行われます – Mchl

+0

どのIDEが助けになりますか? Eclipse PDTまたはZend Studio? – rxgx

答えて

1

あなたはできません。これはIDEの問題ではありません。

php(javaとは異なります)では、関数の戻り値の型はわかりません。だから、PHPのために何が返ってくるのかわからない... Soup:getObj('Foo')戻り値...多分オブジェクトか多分配列か多分それは何も返さないだろう

Netbeansでは、関数にドキュメンテーションを追加して、すべて(ほとんど)のIDEには、より高度なオートコンプリート機能のためにdocblockを使用し、これは

2

を支援のFooオブジェクトに

希望を返し、それは、Zend StudioとEclipseのと同じです。良いdocblockはあなたのコードを文書化してphpdocにするだけでなく、もっと良いコードアシストを与えるでしょう!