PHPackages                             weiwei2012holy/eolinker-doc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. weiwei2012holy/eolinker-doc

ActiveLibrary[API Development](/categories/api)

weiwei2012holy/eolinker-doc
===========================

eolinker api doc generate tool

1.2.11(4y ago)88.2k—0%3MITPHPPHP &gt;=7.0

Since Oct 26Pushed 4y ago1 watchersCompare

[ Source](https://github.com/weiwei2012holy/eolinker-doc)[ Packagist](https://packagist.org/packages/weiwei2012holy/eolinker-doc)[ RSS](/packages/weiwei2012holy-eolinker-doc/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (17)Used By (0)

 eolinker-doc
==============

[](#-eolinker-doc-)

 eolinker api doc generate tool.

Installing
----------

[](#installing)

```
$ composer require weiwei2012holy/eolinker-doc -vvv

# 发布配置
php artisan vendor:publish --provider="Weiwei2012holy\EolinkerDoc\ServiceProvider"

# 配置eolikner数据库链接

database.php
----
        'eolinker' => [
            'driver' => 'mysql',
            'host' => env('DB_EOLINKER_HOST'),
            'port' => env('DB_EOLINKER_PORT', '3306'),
            'database' => env('DB_EOLINKER_DATABASE', 'eolikner_os'),
            'username' => env('DB_EOLINKER_USERNAME'),
            'password' => env('DB_EOLINKER_PASSWORD'),
            'unix_socket' => env('DB_EOLINKER_SOCKET', ''),
            'charset' => 'utf8mb4',
            'collation' => 'utf8mb4_general_ci',
            'prefix' => '',
            'strict' => true,
            'engine' => null,
        ],
----

.env 文件,记得绑定host

----
        #eolikner
        DB_EOLINKER_CONNECTION=eolinker
        DB_EOLINKER_HOST=mysql.test.wxyk
        DB_EOLINKER_HOST_READ=mysql.test.wxyk
        DB_EOLINKER_PORT=3306
        DB_EOLINKER_DATABASE=eolinker_os
        DB_EOLINKER_USERNAME=yk_db
        DB_EOLINKER_PASSWORD=rIit6vG15z63QJqT
----

# 修改配置eolikner.php  配置默认账号和生成的文档项目id

# 运行接口生成工具
php artisan eolinker:create-doc
```

使用说明
----

[](#使用说明)

- 使用[eolikner](https://eolinker.yidejia.com)作为api接口文档管理
- 后台使用apidoc类型注释,通过命令可以一键生成文档
- 各种字段的描述,定义一次即可多次复用
- 用了这个工具包,效率至少提高30%,减少了大量重复的写文档工作,不用每修改接口都要去翻一遍接口源文档进行修改,自从用了这个工具以后,前后端的关系明显变得更加和谐了^\_^

#### 一段简单的接口注释

[](#一段简单的接口注释)

```
/**
 * @api            {get} api/home
 * @apiName        测试首页
 * @apiStatus      todo
 * @apiDescription 测试描述
 * @apiVersion     1.0.0
 * @apiPermission  token
 * @apiParam {integer} user_id 用户id
 * @apiSuccess {object} data={\App\WxaUser}
 * @apiSuccess {integer} data.new_name 名称
 */
public function home()
{
    $data = WxaUser::query()->first();
    $data->new_name = 'new name';
    return $data;
}

# 路由文件定义
Route::get('test', 'HomeController@home')->name('测试应用.测试模块.测试doc-composer');

# 模型自定义字段,支持数组
public function getTableFullColumnsCustom(): array
{
    return [
        'test'=>'test',
        'test2'=>'test2',
        'test_arr'=>[
            'test_aaa'=>'test_aaa',
            'test_bbb'=>'test_bbb',
            'test_ccc'=>[
                'test_c1'=>111,
                'test_c2'=>222,
            ]
        ]
    ];
}
```

[![实际生成效果](https://camo.githubusercontent.com/d0bc265b0d4bf16d05f23020f8d64d161f47a11c24ecbf4abc6550910387224a/687474703a2f2f77782d7374617469632e796964656a69612e636f6d2f313536373737333033323562333266613361636464656338336661333437373938613838356466633662)](https://camo.githubusercontent.com/d0bc265b0d4bf16d05f23020f8d64d161f47a11c24ecbf4abc6550910387224a/687474703a2f2f77782d7374617469632e796964656a69612e636f6d2f313536373737333033323562333266613361636464656338336661333437373938613838356466633662)

#### 参数说明

[](#参数说明)

```
#创建api接口文档到eolikner
php artisan eolinker:create-doc
```

注意事项:

> - 1.默认解析路由中,action位于`App\Http\Controllers`下的接口
> - 2.接口需要配置name,基本规则:`应用.模块.功能`,具体可以根据实际情况灵活调配,该类型的命名,对应了eolikner后台的分组关系
> - 3.参数目前只会修改和增加,不会删除原本的数据
> - 4.注释写法,参考[apidoc](http://apidocjs.com/#param-api-param)规范
> - 5.路由uri包含`api/admin`前缀,统一会再名称上面增加`后台`标记

#### 支持的apidoc标签

[](#支持的apidoc标签)

- `@api {method} path [title]` ,默认会使用 `php artisan route:list`里面`name`,`path`,`method`
- `@apiName name`,接口名称,有该值将会覆盖路由命名里面的值
- `@apiDescription text` api接口详细描述或者写一些其他说明
- `@apiParam [(group)] [{type}] [field=defaultValue] [description]` ,请求参数定义,有效值:类型,字段名,描述,是否可选,默认值
- `@apiSuccess [(group)] [{type}] [field=defaultValue] [description]` 返回值定义
- `@apiParam`和`@apiSuccess`中的\*\*`defaultValue`\*\* ,如果格式为:`defaultValue={FuleNameOfModel@field1,field2}`,将会获取model对应mysql数据库字段描述信息最为返回值,`FuleNameOfModel`为model完整的名称,包含完整的命名空间,`@`后接字段名称,可以过来过滤字段返回(可选)
    1. 在模型中 `use EolinkerDoc\Traits\ModelInfo`,可以重写其中的`getTableFullColumnsCustom`方法实现覆盖源字段和增加数据库不存在字段
    2. todo 分表模型需要处理
    3. 注释示例: ```
        * @apiSuccess {object[]} data={\App\Models\WxaMallLiving\WxaLivingComment} 评论数据
        * @apiParam {object[]} data={\App\Models\WxaMallLiving\WxBadWord}
        ```
- `@apiStatus` 标记接口状态: 接口正常提供服务:`[working,on]`,接口维护中:`[maintain,todo]`,接口已废弃:`[deprecated,down]`,默认接口状态为正常

License
-------

[](#license)

MIT

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity57

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 50% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Recently: every ~19 days

Total

16

Last Release

1808d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/fe50933123ea688b7950b461258a3a96b074144613424337819eccafbe92d7a0?d=identicon)[weiwei2012holy](/maintainers/weiwei2012holy)

---

Top Contributors

[![leirenzhichui](https://avatars.githubusercontent.com/u/7393856?v=4)](https://github.com/leirenzhichui "leirenzhichui (1 commits)")[![weiwei2012holy](https://avatars.githubusercontent.com/u/17821634?v=4)](https://github.com/weiwei2012holy "weiwei2012holy (1 commits)")

### Embed Badge

![Health badge](/badges/weiwei2012holy-eolinker-doc/health.svg)

```
[![Health](https://phpackages.com/badges/weiwei2012holy-eolinker-doc/health.svg)](https://phpackages.com/packages/weiwei2012holy-eolinker-doc)
```

###  Alternatives

[overtrue/laravel-wechat

微信 SDK for Laravel

3.0k1.8M53](/packages/overtrue-laravel-wechat)[essa/api-tool-kit

set of tools to build an api with laravel

52680.5k](/packages/essa-api-tool-kit)[skagarwal/google-places-api

Google Places Api

1913.0M8](/packages/skagarwal-google-places-api)[bmatovu/laravel-mtn-momo

Laravel MTN MOMO integration.

14310.9k](/packages/bmatovu-laravel-mtn-momo)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
