0

我正在尝试使用 phpDocumentor 生成我的 Laravel 包文档,但我发现生成面向使用的文档并不像我想的那样容易。

我的意思是:我应该如何编写 docblocks 以正确让 php 文档或生成我的模型文档?应该如何为 eloquent 和 laravel 的特定功能编写 docblock?

例如,目前在我的一个模型中,我使用@ignoreclass $timestamps、和properties 以及附加属性的所有访问器进行了标记,并使用标记在类级别添加了模型$fillable属性:$appends$casts@property

/**
 * @property string $a
 * @property float $b
 * @property-read bool $c
 * @property-read bool $d
 */
class MyModel extends Model
{

    /** @ignore */
    public $timestamps = false;

    /** @ignore */
    protected $fillable = [
        'a',
        'b',
    ];

    /** @ignore */
    protected $appends = [];

    /** @ignore */
    protected $casts = [];

    /** @ignore */
    public function getCAttribute(): bool
    {
        // return something
    }

    /** @ignore */
    public function getDAttribute(): bool
    {
        // return something
    }
}

这会生成更简单的文档,因为它从如何使用模型的角度显示/解释模型。

范围和关系出现问题:我应该如何为这些(实际上)方法编写文档块?
关系通常用作属性,期望它们返回模型或集合,但如果需要添加条件并期望返回关系实例,则可以再次用作函数。
范围仍然用作函数,但使用不同的签名调用,因为第一个参数是从框架注入的,甚至名称也不同。

有没有关于这种情况的约定?

4

1 回答 1

0
/**
 * @method static $scopeDa()
 */

public function scopeDa($query)
{
    return $query->where("a", "=", "conditional")->whereNull("deleted_at")->first();
}

你应该这样写范围。

于 2021-10-22T09:16:47.350 回答