tp6加apidoc学习笔记(一)环境搭配

柯英奕
2023-12-01

一,工具

1,宝塔(由于PHPStudy无法设置运行目录,伪静态之后依然需要加public才能访问,导致后期很多扩展出问题,比如apidoc访问可能会出现404)

宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板

2,phpstorm

3,thinkphp6

轻量级PHP框架|专注WEB应用开发17年 · ThinkPHP

4,apidoc

建议及规范 | ThinkPHP-ApiDoc (gitee.io)

二,集成开发环境

1,ngxinx最高版本即可

php7.3版,7的版本都可以,(宝塔的php安装之后默认禁用了很多函数,在实际运行中根据需求在设置中删除对应禁用函数即可)

2,添加域名解析

系统位置:C:/Windows/System32/drivers/etc/hosts打开之后设置域名解析

3,安装tp6

需要composer,没有可在宝塔网站设置里边安装也可官方下载安装,需要php,可以指定到宝塔下边的php

composer create-project topthink/think tp

1》宝塔创建新的网站并指定添加的域名解析以及指定创建的tp6项目位置创建网站

2》设置伪静态,点击创建的网站,设置,伪静态,然后在上边直接选择thinkphp,保存即可

4,在网站目录下安装apidoc

在wang'zhan

composer require hg/apidoc

记得还需要下载ui放在public目录下边

在控制器添加引用:

use hg\apidoc\annotation as Apidoc;

具体代码如下

<?php
namespace app\controller;

use app\BaseController;
use hg\apidoc\annotation as Apidoc;

/**
 * 标题也可以这样直接写
 * @Apidoc\Title("基础示例")
 * @Apidoc\Group("base")
 * @Apidoc\Sort(1)
 */
class Index extends BaseController
{
    /**
     * @Apidoc\Title("基础的注释方法")
     * @Apidoc\Desc("最基础的接口注释写法")
     * @Apidoc\Url("/index/index")
     * @Apidoc\Method("GET")
     * @Apidoc\Tag("测试 基础")
     * @Apidoc\Header("Authorization", require=true, desc="Token")
     * @Apidoc\Param("username", type="string",require=true, desc="用户名" )
     * @Apidoc\Param("password", type="string",require=true, desc="密码" )
     * @Apidoc\Param("phone", type="string",require=true, desc="手机号" )
     * @Apidoc\Param("sex", type="int",default="1",desc="性别" )
     * @Apidoc\Returned("id", type="int", desc="新增用户的id")
     */
    public function index()
    {
        
		$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
		//return 'hello,';
		//echo json_encode($arr);
		//return json_encode($arr);
		return json($arr);
    }

    /**
     * @Apidoc\Title("获取用户信息")
     * @Apidoc\Desc("获取用户的所有信息,包括用户名字,呢称,级别等信息")
     * @Apidoc\Url("/index/getuser")
     * @Apidoc\Method("GET")
     * @Apidoc\Tag("测试 基础")
     * @Apidoc\Header("Authorization", require=true, desc="Token")
     * @Apidoc\Param("uid", type="int",require=true, desc="用户名" )
     */
    public function getuser($uid = 6)
    {
		$arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
        return json($arr);
    }
}

这样就可以apc.com/apidoc访问之后看到对应的接口了

5,常见问题

完成以上6点之后,可以通过网址直接访问网站了

比如

abc.com可以看到tphinkphp6页面,证明tp6安装成功

abc.com/apidoc可以查看页面,证明apidoc安装成功

apidoc页面常见问题

404,可能是apidoc没安装好,需要确定运行如下命令之后没有发生错误这里发现由于php某个函数给禁止了,导致以上命令运行一半之后出现红色字样,需要删除禁止函数即可

另一个原因是因为伪静态没配置导致链接错误,需要在宝塔对应网站设置那里设置下tp6的伪静态

502,发生这个错误之后直接重启nginx服务器和php,即解决

 类似资料: