Search by

erikwang2013 / apidoc-php

erikwang2013

基于PHP 8 attributes生成API文档,兼容Laravel、ThinkPHP、Hyperf、Webman等框架;在线调试、Markdown文档、多应用/多版本、Mock数据、授权访问、接口生成器、代码生成器等众多实用功能

Package info

github.com/erikwang2013/apidoc-php

pkg:composer/erikwang2013/apidoc-php

Statistics

Installs: 670

Dependents: 0

Suggesters: 0

Stars: 1

v1.0.4 2026-09-05 10:58 UTC

This package is auto-updated.

Last update: 2026-09-05 11:01:09 UTC


README

Apidoc

基于 PHP 8 attributes 的 API 文档生成与接口开发工具,兼容 Laravel、ThinkPHP、Hyperf、Webman、Yii2、Yii3

📖项目介绍

Apidoc 是一款通过解析 PHP 8 attributes 自动生成 API 接口文档的 PHP 扩展包,兼容 Laravel、ThinkPHP、Hyperf、Webman、Yii2、Yii3 等主流框架。除文档自动生成外,还集成了在线接口调试、Mock 调试数据、Json/TypeScript 代码生成、接口生成器、代码生成器等能力,覆盖接口开发、调试、交付的全流程,致力于提升 API 开发效率。

项目来源:本项目源自 HGthecode/apidoc-php,继承其 attributes 注解体系与配置结构,并在此基础上移除了 doctrine/annotations 旧注解依赖、仅支持 PHP 8 attributes(PHP >= 8.0),由 erikwang2013 持续维护与扩展。

✨项目说明

  • 开箱即用:无需繁杂配置,安装后按文档编写 attributes 即可自动生成 API 文档。
  • 轻松编写:支持通用注释定义(definitions)、数据表字段的 ref / table 引用,几句注解即可完成完整字段定义。
  • 在线调试:文档页内直接调试接口,支持全局参数带入、Mock 数据、前置/后置调试事件。
  • 多应用/多版本:单应用、多应用、多版本项目均可配置,接口按应用/版本分组展示与切换。
  • 分组/Tag:控制器与接口支持多级分组与 Tag 标记。
  • Markdown 文档:可将 .md 文件挂载为文档页。
  • Json/TypeScript 生成:每个接口自动生成 Json 请求/响应示例与 TypeScript 类型定义,直接用于前端。
  • 代码生成器:配置 + 模板即可生成业务代码、数据表与前端 Api 文件。
  • 接口分享:可生成指定应用/接口的分享链接、导出 swagger.json
  • 安全访问:支持全局密码与应用/版本独立密码授权,可开启文档缓存。

🚀快速开始

安装:

composer require erikwang2013/apidoc-php

配置应用目录与通用定义(不同框架的配置发布方式略有差异,详见下方使用文档“框架接入”;ThinkPHP 为例,编辑 config/apidoc.php):

return [
    'apps' => [
        ['title' => 'Api接口', 'path' => 'app\controller', 'key' => 'api'],
    ],
    'definitions' => "app\common\controller\Definitions",
];

在控制器中通过 PHP 8 attributes 编写接口注解:

use erikwang2013\apidoc\annotation as Apidoc;

#[Apidoc\Title("用户")]
#[Apidoc\Desc("用户相关接口")]
class User
{
    #[Apidoc\Method("GET")]
    #[Apidoc\Url("/user/info")]
    #[Apidoc\Query(name: "id", type: "int", require: true, desc: "用户ID")]
    #[Apidoc\Returned(name: "nickname", type: "string", desc: "昵称")]
    public function info()
    {
        // ...
    }
}

访问 http://你的域名/apidoc 即可查看自动生成的接口文档(在线调试、Mock、Json/TypeScript 生成等能力开箱即用)。

📌兼容

以下框架已内置兼容,可开箱即用

框架 版本 说明
ThinkPHP >=5.1
Webman >=1.x
Laravel >=8.x 低于 Laravel8 版本未测试,可自行尝试
Hyperf >=2.x
Yii2 >=2.0 需开启 urlManager 的 enablePrettyUrl,手动调用 Yii2Service::register()
Yii3 >=3.0 手动调用 Yii3Service::register($container, $config)

📖使用文档

Attributes 使用说明

(安装与框架接入、注解写法教程、参数说明)

🏆支持我们

如果本项目对您有所帮助,请点个Star支持我们