yangakw yangakw

php自动生成 接口文档

in 代码read (101) 文章转载请注明来源!

运用面向对象反射的原理,php这个神器连注释都能获取到。
前提:
1.面向对象编程。
2.接口类统一管理。


class Doc extends CliCommon
{
    const CONFIG = [
        [
            "Tool",
            "Qiniu",
            "工具接口",
        ],
        [
            "User",
            "UserBase",
            "用户注册登录",
        ],
        [
            "Product",
            "ProductBase",
            "商品接口",
        ],
    ];

    /**
     * 生成文档输出到doc
     */
    public function run()
    {
        $content = "";
        foreach (self::CONFIG as $v) {
            $iClass = sprintf("WEI\\Controller\\%s\\%s",
                $v[0],
                $v[1]
            );
            $content .= "\n# $v[2] :\n";
            if (class_exists($iClass)) {
                $Ref     = new \ReflectionClass($iClass);
                $aMethod = $Ref->getMethods(\ReflectionMethod::IS_PUBLIC);
                foreach ($aMethod as $Method) {
                    $methob_name = $Method->getName();
                    if (substr($methob_name, -6) != "Action") {
                        continue;
                    }
                    $str = sprintf(
                        "%s%s%s%s",
                        "### url地址: /v1/" . $v[0] . "/" . $v[1] . "/" . substr($methob_name, 0, -6) . ".action\n",
                        "\n```\n文档:\n\n     " . $Method->getDocComment() . "\n",
                        "\n\n类地址: \n\n     " . $iClass . "->" . $methob_name . "\n```\n",
                        "\n\n\n\n"
                    );
                    $content .= $str;
                }
            }
        }
        file_put_contents("doc/Interface/doc_" . date("Y-m-d") . ".md", $content);
    }
}

输出数据

工具接口 :

url地址: /v1/Tool/Qiniu/auth.action

文档:

     /**
     * 七牛云认证
     * rsp auth
     */


类地址: 

     WEI\Controller\Tool\Qiniu->authAction

用户注册登录 :

url地址: /v1/User/UserBase/register.action

文档:

     /**
     * 注册接口
     * name
     * password
     *
     */


类地址: 

     WEI\Controller\User\UserBase->registerAction

url地址: /v1/User/UserBase/login.action

文档:

     /**
     * 登陆接口
     * name
     * password
     */


类地址: 

     WEI\Controller\User\UserBase->loginAction
jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

发表新评论
博客已运行
© 2017 yangakw
PREVIOUS NEXT
雷姆
拉姆