ThinkPHP6初步搭建API服务教程

2020-08-1021:28:32后端程序开发Comments2,547 views字数 2507阅读模式

1 下载Composer

Composer是 PHP 用来管理依赖(dependency)关系的工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

1.1 windows版本

下载地址:getcomposer.org/文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

如果报错:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

Program Output:
PHP Deprecated:  Directive 'track_errors' is deprecated in Unknown on line 0
复制代码

则修改php.ini:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

;track_errors = On (On改为Off)
track_errors = Off
复制代码

重启HTTP服务后,安装通过。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

1.2 macOS版本

执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

curl -sS https://getcomposer.org/installer | php
复制代码

如果报错以下信息,或者迟迟下载不完:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

Failed to decode zlib stream
复制代码

就直接去官网(getcomposer.org/download/)下载最新版的composer.phar文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

下载后,在存放composer.phar的目录下执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

mv composer.phar /usr/local/bin/composer
复制代码

然后就可以全局使用composer了,执行以下命令查看版本号:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

composer -v
复制代码

2 安装/升级ThinkPHP6

执行以下命令,切换为阿里云镜像加速下载:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
复制代码

选好目录,执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

composer create-project topthink/think projectName
复制代码

安装好后,进入项目目录,执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

php think run
复制代码

浏览器访问:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

http://localhost:8000/
复制代码

如果改变端口,则执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

php think run -p 80
复制代码

升级ThinkPHP6,进入项目根目录,执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

composer update
复制代码

实际部署中,应该是绑定域名访问到public目录,确保其它目录不在WEB目录下面。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

3 配置调试模式

根目录下的.example.env重命名为.env,设置以下代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

 APP_DEBUG = true
复制代码

4 多应用部署

目录结构

/www  WEB部署目录(或者子目录)
├─ /app                  应用目录
│  ├─ /myApp             子应用目录
│  │  ├─common.php       子应用函数文件
│  │  ├─/controller      子应用控制器目录
│  │    ├─Index.php     子应用控制器
│  │  ├─/model           子应用模型目录
│  │  ├─/view            子应用视图目录
│  │  ├─/config          子应用配置目录
│  │  ├─/route           子应用路由目录
│  │  └─ ...             子应用更多类库目录
│  │
|  ├─BaseController.php  默认基础控制器类
│  ├─common.php          公共函数文件
│  ├─event.php           事件定义文件
|  ├─ExceptionHandle.php 应用异常定义文件(一定要保留这个!否则ERROR 500)
|  |─middleware.php      全局中间件定义文件
│  ├─provider.php        服务提供定义文件
|  └─Request.php         应用请求对象(一定要保留这个!否则ERROR 500)
复制代码

多应用模式扩展think-multi-app

要使用多应用模式,需要安装think-multi-app,在项目根目录执行以下命令安装:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

composer require topthink/think-multi-app
复制代码

修改控制器的路径

打开app/myApp/controller/Index.php,调整namespace文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

-   namespace app\controller;
+   namespace app\myApp\controller;
    use app\BaseController;
复制代码

然后通过http服务即可访问:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

http://127.0.0.1/thinkphp6/public/index.php/myApp
复制代码

URL重写

如果想省略index.php,即通过以下方式访问文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

http://127.0.0.1/thinkphp6/public/myApp
复制代码

在public/.htaccess添加:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>
复制代码

通过官方composer默认安装已经完成了URL重写,这里仅做备忘。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

5 多级控制器

目录结构如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

├─ /app                  应用目录
│  ├─ /myApp             子应用目录
│  │  ├─/controller      子应用控制器目录
│  │    ├─/api           二级控制器目录
│  │      ├─/Login.php   二级控制器
复制代码

Login.php代码:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

<?php
namespace app\myApp\controller\api;

use app\BaseController;

class Login extends BaseController
{
    public function index()
    {
        return '二级控制器Login';
    }
}
复制代码

设置之后就可以通过以下URL访问了:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

http://127.0.0.1/thinkphp6/public/myApp/api/login
复制代码

自动创建API控制器

也可以通过命令行自动生成控制器,新生成的控制器包含了预设代码。在根目录执行:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

php think make:controller app\myApp\controller\api\Login --api
复制代码

通过以上设置,基本完成了ThinkPHP6的最基础部署。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

作者:Mr_兔子先生
链接:https://juejin.im/post/6844904037561663495
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/19981.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/19981.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定