1

我用 Doxygen 记录模型类(在 PHP 中)。我使用 Idiorm & Paris 作为 ORM,我希望动态成员变量(直接来自数据库)也出现在生成的文档中。

示例:我有一个模型Group,其中包含一些方法,例如DoxygenisMember()users()文档中的 Doxygen。在数据库中,我有一个表group,其中包含一个字段code。在 Idiorm & Paris 我可以从这样的Group实例中访问它$group

$group->code

如何code在 Doxygen 中记录?

编辑:这个问题类似于如何记录 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的建议,但是 Paris 不能很好地处理已经存在的成员变量,因为 - 我认为 - PHP 魔术方法__get()不再被触发。我看到三个可能的修复:

  1. unset()构造函数中记录的成员变量。get_class_vars(get_class($this))这可以在父类中完成。因为我的模型类都继承自父类,所以这将相对简单。
  2. 修改 Paris 以忽略已经设置的成员变量,但我看不出没有unset().
  3. 对成员变量的命名略有不同,例如附加下划线,因此它们不会与动态变量冲突。

可怕的杂物。在运行时做某事或有额外的成员使文档成为可能?不,谢谢。

我决定保持现状并仔细记录模型工厂方法。大多数时候,工厂方法包含作为参数的类变量,以便能够设置它们。即使工厂方法没有设置所有类变量,也可以用散文记录丢失的变量。类文档也是一个不错的选择。

我将赏金奖励给有创造力的荷兰人,因为我的想法是开箱即用,即使它最终对我没有帮助,也因为我不希望声誉点数丢失。

tl;博士

不要乱七八糟。在工厂方法或类概述中记录动态成员变量。

于 2012-08-26T18:06:09.983 回答