2010-11-19 7 views
3

PHPコードからドキュメントを生成するためにdoxygenを使い始めました。生成された出力には、継承とコラボレーションの2つの図があることがわかりました。私は、継承1について知っているが、コラボレーションの一つは、マニュアルを読んで以来、私の興味をそそった:PHP Doxygen Collaboration Diagrams

COLLABORATION_GRAPHとHAVE_DOTタグがYESに設定されている場合、doxygenは がダイレクトを示す各文書クラスのグラフを生成します 他の文書化されたクラスを持つクラスの間接的な実装依存関係(継承、包含、および クラス参照変数)

私は、この説明から得た印象は、構成の関係をコラボレーション図で表現する必要があるということですが、常に継承のものと同じであるようです。

私はこの図に表示したいことをDoxygenに示唆するために何かできますか?それはPHPで動作しませんか?

答えて

0

私はdoxygenはとのコラボレーション図を生成しようとしたことはありませんが、私はあなたがこのようなあなたのコードを文書化する必要があると信じて:あなたはのDocblock doxygenには、その$ bを認識しない場合があり省略した場合

class B {} 

class A { 
    /** 
    * @var B 
    */ 
    private $b; 
} 

タイプBのものであり、コラボレーション図にBは含まれません。

+0

私はすでにEclipseに大きく貢献しているので、私のコードはこのようにコメントしています。残念ながら、コラボレーション図は決して有用ではありません。 – Shabbyrobe

2

あなたのためにそれを使用しているクラスは継承EXCEPTコラボレーション図で表示するあまりを持っていないので、それができますか?

複合クラスで試しましたか? (他のクラスのメンバオブジェクトを含むクラス)

これらの場合(少なくともC++では)、さまざまな関係を表す複雑な色分けされた図が生成されています。

+0

それは正確に問題です - 私は関係を文書化しました、それは構成を示すべきですが、そうではありません。 – Shabbyrobe

+0

DoxygenのPHPパーサーのバグかもしれないと思いますか? – bittwiddler

+0

私はそれがDoxygenのPHPパーサー(私はdoxygen 1.7.4でテスト済み)の欠けている機能だと信じています。 Doxygenは、どのクラスメンバのドキュメントも決して拾わないようです。その結果、一部のメンバが別のクラスへの参照であることは決してありません。私はDoxygenパーサーがクラスメンバのドキュメント(特に@varで宣言されたメンバ型)を取得する方法を学ぶと、これが動作すると思います。 –