matchory / herodot
用于构建Laravel API的灵活文档生成器。
dev-main
2021-02-17 08:40 UTC
Requires
- php: ^8.0
- ext-json: *
- cebe/php-openapi: ^1.4
- illuminate/config: ^8.21
- illuminate/console: ^8
- illuminate/events: ^8
- illuminate/http: ^8
- illuminate/routing: ^8
- illuminate/support: ^8
- illuminate/view: ^8.26
- league/commonmark: ^1.5
- marcj/topsort: ^2.0
- nikic/php-parser: ^4.10
- phpdocumentor/reflection-docblock: ^5.2
- ramsey/uuid: ^4.1
- spatie/yaml-front-matter: ^2.0
- symfony/yaml: ^5.2
- zircote/swagger-php: ^3.1
Requires (Dev)
- roave/security-advisories: dev-latest
- vimeo/psalm: ^4.3
Suggests
- ext-yaml: For native YAML support
This package is auto-updated.
Last update: 2024-09-17 16:42:19 UTC
README
Herodot
用于构建Laravel API的灵活文档生成器。
探索文档
Herodot是一个文档生成框架,专为Laravel应用程序定制。它通过分析应用程序的源代码来生成文档。
尽管一切通常都运行良好,但Herodot是完全模块化的、可配置的,并在许多有趣的地方提供了钩子和事件。
特性
- 精心为Laravel构建
Herodot考虑了Laravel应用程序的每个部分:从聪明的路由解析、API资源、策略和内置中间件支持到与Passport、Fortify、Sanctum、Scout和其他应用程序的集成。您越坚持标准,它就越出色。 - 适应您的文档方式
Herodot为PHP8+属性、OpenAPI注释、文档注释、外部数据源或仅源代码解析提供策略。无论您如何偏好文档API,Herodot都将理解它。 - 独立的路由收集、信息提取和输出生成
Herodot使用完全隔离的阶段,这使得它可以像乐高积木一样扩展和替换实现。 - 广泛文档化
Herodot附带广泛的文档,从简单设置到编写扩展。
要求
- PHP >= 8.0 (请参阅为什么我们需要PHP 8)
- Laravel >= 7.0 (旧版本/Lumen 可能 也能工作,但既未经过测试也未进行优化)
替代品
入门
要开始使用Herodot,请通过Composer安装它
php composer require matchory/herodot
除非您已禁用包自动发现,否则Herodot应已安装并可使用。否则,将服务提供程序添加到您的config/app.php
'providers' => [ // ... Matchory\Herodot\HerodotServiceProvider::class, ],
用法
Herodot为您应用程序添加一个中央Artisan命令
php artisan herodot:generate
执行它将启动文档生成。您现在可以安全地这样做:Herodot将分析您的代码并在public/docs
中生成文档。如果此目录已存在,则在写入任何内容之前将提示您。
默认情况下,这将为您留下一个HTML页面和一个OpenAPI(也称为Swagger)定义。要配置输出格式和其他任何设置,您应发布包配置文件
php artisan vendor:publish --provider="Matchory\\Herodot\\HerodotServiceProvider" --tag="config"
这将导致配置文件被发布到config/herodot.php
。查看配置参考以了解所有可用选项。
API文档化
请参阅文档了解如何文档化您的API!
贡献
贡献使开源社区成为一个如此令人惊叹的学习、灵感和创造的地方。您所做的任何贡献都将受到高度赞赏。
叉项目
- 创建您的功能分支 (
git checkout -b your-name/amazing-feature
) - 提交您的更改 (
git commit -m 'Add some amazing feature'
) - 将更改推送到分支 (
git push origin your-name/amazing-feature
) - 打开拉取请求