1

Doxygenを使用してモデルクラス(PHP)を文書化します。Idiorm&ParisをORMとして使用しており、動的メンバー変数(データベースから直接取得)も生成されたドキュメントに表示されるようにしたいと思います。

例: Doxygenのような、またはDoxygenで文書化されGroupたいくつかのメソッドを備えたモデルがあります。データベースには、特にフィールドを含むテーブルがあります。Idiorm&Parisでは、次のようなインスタンスからアクセスできます。isMember()users()groupcodeGroup$group

$group->code

codeDoxygenで文書化するにはどうすればよいですか?

編集:この質問は、Doxygenに実際には存在しない変数を文書化する方法に似ていますか?、しかし、それは変数ではなく、動的メンバーに関するものです。

編集2:正しい用語がわかりません。それは動的メンバー変数ですか、それとも動的プロパティですか?

4

2 に答える 2

1

特定のデータビットが含まれることがわかっているモデルをセットアップするときに私が通常行うことは、モデル定義の変数を設定することです。これにより、モデルで期待できるデータの種類を簡単に確認できます。

IdiormやParisの経験はありませんが、試してみることができます。変数が存在するため、変数の文書化は非常に簡単です。

于 2012-08-22T09:56:19.303 に答える
0

Doxygenに存在しないクラス変数を文書化することは不可能ですか?裸でやってみた

/** @var User::email string 
  * Email address
  */

クラスに対応する$email;メンバー変数はありませんが、Doxygenはそれを勇敢に無視しました。不足しているアーティファクトのドキュメントを強制するコマンドなどが見つかりませんでした。

したがって、私はcreativedutchmenの提案を試しましたが、PHPのマジックメソッドがトリガーされなくなったため、パリは既存のメンバー変数にうまく対応でき__get()ません。考えられる修正は3つあります。

  1. unset()コンストラクター内の文書化されたメンバー変数。これによりget_class_vars(get_class($this))、親クラスで実行できます。私のモデルクラスはすべて親クラスを継承しているため、これは比較的簡単です。
  2. すでに設定されているメンバー変数を無視するようにParisを変更しますが、。がないとどうなるかわかりませんunset()
  3. 動的変数と競合しないように、アンダースコアを追加するなど、メンバー変数に少し異なる名前を付けます。

恐ろしい応急修理。実行時に何かをするため、またはドキュメント化を可能にするために追加のメンバーを持たせるためですか?結構です。

状況をそのままにして、代わりにモデルファクトリメソッドを注意深く文書化することにしました。ほとんどの場合、ファクトリメソッドには、それらを設定できるクラス変数がパラメータとして含まれています。また、ファクトリメソッドですべてのクラス変数が設定されていない場合でも、欠落している変数を散文で文書化することができます。クラスのドキュメントも良い代替手段です。

結局は役に立たなかったとしても、箱から出して考えて、評判ポイントを失いたくないので、私は創造的なオランダ人に賞金を授与します。

tl; dr

恨んではいけません。ファクトリメソッドまたはクラスの概要で動的メンバー変数を文書化します。

于 2012-08-26T18:06:09.983 に答える