silverleague/ideannotator

为 DataObject 和 DataExtension 的数据库字段和关系方法生成 PHP DocBlock 注释

安装数量: 48,352

依赖关系: 12

建议者: 0

安全: 0

星标: 46

关注者: 6

分支: 25

开放问题: 6

类型:silverstripe-vendormodule

3.5.1 2024-04-15 22:51 UTC

README

Scrutinizer Travis codecov Packagist Packagist Packagist Pre Release

此模块为 DataObjects、PageControllers 和 (Data)Extensions 生成 @property、@method 和 @mixin 标签,以便像 PHPStorm 这样的 IDE 能够识别在 $db、$has_one、$has_many 和 $many_many 数组中设置的数据库和关系。

可以使用每个模块或类名的 DataObjectAnnotatorTask 在每次 dev/build 时生成/更新 docblocks。

需求

SilverStripe 框架和可能的自定义代码。

默认情况下,mysiteapp 是启用 "模块"。

版本 ^2

SilverStripe 3.x 框架

版本 ^3

SilverStripe 4.x+

安装

{
  "require-dev": {
    "silverleague/ideannotator": "3.x-dev"
  }
}

请注意,此示例省略了您可能需要的任何模块!

示例结果

<?php

/**
 * Class NewsItem
 *
 * @property string $Title
 * @property int $Sort
 * @property int $Version
 * @property int $AuthorID
 * @method \SilverStripe\Security\Member Author()
 * @method \SilverStripe\ORM\DataList|Category[] Categories()
 * @method \SilverStripe\ORM\ManyManyList|Tag[] Tags()
 * @mixin Versioned
 */
class NewsItem extends \SilverStripe\ORM\DataObject
{
    private static $db = array(
        'Title'	=> 'Varchar(255)',
        'Sort'	=> 'Int'
    );

    private static $has_one = array(
        'Author' => Member::class
    );

    private static $has_many = array(
        'Categories' => Category::class
    );

    private static $many_many = array(
        'Tags' => Tag::class
    );
}

更多信息

有关安装信息,请参阅 安装指南

有关行为准则,请参阅 行为准则

有关贡献,请参阅 贡献指南

有关更多文档信息,请参阅 文档

注意事项

此模块会更改您文件的 内容,并且目前没有备份功能。PHPStorm 为文件提供本地历史记录,当然您也拥有代码版本控制...我尝试添加了完整的单元测试,但无法保证涵盖所有情况。

Windows 用户应意识到,PHP 文档是用 PSR 考虑生成的,并且使用 \n 作为行结束符,而不是 Windows 的 \r\n,某些编辑器可能难以处理这些行结束符。

此模块绝对不应该在生产环境中安装。