2012-01-18 4 views
0

私は現在、PHPを使用してAptana Studio 3(現時点では3.0.7と思われます)で作業しています。私は別のオブジェクトのインスタンスを返す関数を持っていますが、そのオブジェクトは実行時に決定されます。したがって、関連するコメントで関数を飾ることはできません。代わりに、私は完全なコードのためのタグで呼び出し元を装飾するためのクリーンなソリューションを探しています。これどうやってするの?Aptana Studio 3混合型のPHPコード補完?

/** 
* Represents a person. 
*/ 
class Person 
{ 
    /** 
    * Contains the identifier. 
    * 
    * @var int 
    */ 
    public $PersonId; 

    /** 
    * Contains the string. 
    * 
    * @var string 
    */ 
    public $Name; 
} 

/** 
* A simple factor example. 
* 
* @return mixed 
*/ 
function CreateExample($zClass) 
{ 
    return new $zClass(); 
} 

/* @var $x Person */ 
$x = CreateExample('Person') instanceof Person; 

コメントとinstanceofの両方でデコレーションした後、最終的には機能しましたが、これは恐ろしいようです! ソリューションを使用して、意図したとおりに動作させる良い方法はありませんか?

答えて

2

まず、CreateExample('Person') instanceof Personは、$xにプリミティブブール値を代入すると信じています。 CreateExampleから@return Personへの返品を編集した場合でも、$xのコードアシストは得られません。

$x = CreatePerson('Person');を設定すると、CreateExampleドキュメントが正しく設定されている場合に備えてCAが取得されます。

返された型が混在しているので、解決策の1つは@varドキュメントを使用することです。ただし、使用できるもう1つのソリューションがあります。

私はあなたがパイプCreateExample @returnでこれらの型ができ、その場合には、あなたはすべての可能な戻り値の型を知っていると仮定:今

@return Person|OtherClass|ThirdClass

、あなたは、コードアシスト$x必要になります利用可能なすべての要素の集計をからすべてあなたがパイプしたクラスにします。

希望に役立ちます!

関連する問題