2011-01-22 12 views
1

以下はBase.phpというのコードとクラスベースこのクラスを拡張するphpDocでは、私がまだ知らないクラスをどのように書くのですか?

/** 
* @return ? 
*/ 
public static function withId($id, $class = __CLASS__) 
{ 
    $instance = new $class($id); 
    if ($instance->getId() == self::ID_OF_UNKNOWN_USER) { 
     $instance = null; 
    } 
    return $instance; 
} 

他のクラスです。私は遅い静的バインディングを使って、withId()を呼び出す前に誰が作成されるべきかを理解し、$ classとしてクラス名を渡しています。

返されるクラスは、Baseまたはその子である可能性があります。 phpDocでそれをどのようにマークしますか?

答えて

1

これは工場パターンのように見えます。この場合、ユーザコードは、返された具象クラスをで知るべきではありません。通常は、抽象クラスまたはインターフェイスとプログラムを使用します。この場合、

実行時に生成された値を静的なdocstringに使用する方法はありません。

0

返されるクラスは、Baseまたはその子である可能性があります。 phpDocでそれをどのようにマークしますか?

ストレートフォワード。

/** 
* @return Base 
*/ 
関連する問題