irazasyed/docgen

使用Docgen for Laravel自动生成门面文档,简化Laravel包的开发

0.2.0 2023-03-18 08:35 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

📖 使用Docgen for Laravel Facade简化Laravel包的开发

Docgen

简介

Docgen for Laravel包,Laravel包开发者的终极解决方案。

这个英勇的包会自动生成你的Laravel包门面的文档,消除你自己维护文档的繁琐工作。

有了这个包,IDE将为你和你的包的开发者提供方法建议,让你的开发之旅更加顺畅。

安装

你可以通过composer安装此包

composer require irazasyed/docgen --dev

用法

有多种方式可以使用CLI工具。

基础

让我们从基本用法开始。

使用门面的名称调用命令

vendor/bin/docgen -f "Namespace\Path\To\Laravel\Facade::class"

高级

在你的包的根目录中创建一个名为docgen.php的新配置文件,并添加以下代码

<?php

return [
    'facade' => Namespace\Path\To\Laravel\Facade::class,

    // Optional
    // Path\To\Class::class => [Excluded Methods Array]
    'classes' => [],
    
    // Global Excluded Methods
    'excludedMethods' => [],
];

运行以下命令生成文档并将其应用于门面

vendor/bin/docgen

您也可以将配置文件存储在其他位置,并使用-c--config选项提供路径。

示例

vendor/bin/docgen -c path/to/docgen.php

生成多类门面的文档

如果你的Laravel门面链接到需要文档的一组类,你可以提供一个类名数组。此外,如果你想从特定类的文档中排除某些方法,你可以传递一个包含这些方法名称的数组。

为了说明这一点,考虑以下示例,它展示了如何使用这种方法与Telegram Bot SDK的Laravel Facade一起使用。

<?php

// docgen.php

return [
    'facade' => Telegram\Bot\Laravel\Facades\Telegram::class,
    
    'classes' => [
        \Telegram\Bot\BotsManager::class,
        \Telegram\Bot\Api::class => [
            'setContainer',
            'getWebhookUpdates',
        ],
        \Telegram\Bot\Commands\CommandBus::class => [
            'getTelegram',
            'setTelegram',
        ],
    ],
    
    // Global Excluded Methods
    'excludedMethods' => [],
];

调用命令以生成并应用文档。

vendor/bin/docgen

API

generate(string|array $classes, array $globalExcludedMethods = [])

为给定的类生成文档。

参数

  • $classes - 要使用其方法生成文档的类名或一个数组,格式为[class => (可选) [excluded methods]]
  • $globalExcludedMethods - (可选) 生成文档时要排除的方法数组。

返回

Docgen - Docgen实例。

示例

Docgen::generate([
    //  Class Name => [Excluded Methods]
    \App\Some\Class::class => ['method1', 'method2'],
    \App\Some\OtherClass::class,
])->apply(\Namespace\To\Facade::class); // Apply to Facade.

getDocBlock()

获取生成的文档。

返回

string - 生成的文档。

apply(string $className = '')

将生成的文档应用于给定的类名,或默认为用于生成文档的类。

参数

  • $className - (可选) 要应用生成的文档的类名。

返回

bool - 成功返回true,否则返回false。

TODO

  • 添加github动作以自动维护文档。

资源

变更日志

有关最近更改的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING

安全漏洞

请参阅我们的安全策略,了解如何报告安全漏洞。

致谢

许可证

麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。