站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

ThinkPHP初步搭建API服务(详细步骤)

时间:2021-12-23 [网络编程]作者:fabuyuan 浏览:6 次

本篇文章整理了ThinkPHP6从头开始部署的详细操作步骤,希望能够帮助大家节省探索的时间,对大家有帮助。

ThinkPHP初步搭建API服务(详细步骤)1 下载Composer

Composer是 PHP 用来管理依赖(dependency)关系的工具。

1.1 windows版本

下载地址:getcomposer.org/

如果报错:

Program Output: 
PHP Deprecated:  Directive 'track_errors' is deprecated in Unknown on line 0

则修改php.ini:

;track_errors = On (On改为Off) 
track_errors = Off

重启HTTP服务后,安装通过。

1.2 macOS版本

执行:

curl -sS https://getcomposer.org/installer | php

如果报错以下信息,或者迟迟下载不完:

Failed to decode zlib stream

就直接去网(getcomposer.org/download/)下载最新版的composer.phar

下载后,在存放composer.phar的目录下执行:

mv composer.phar /usr/local/bin/composer

然后就可以全局使用composer了,执行以下命令查看版本号:

composer -v

2 安装/升级ThinkPHP6

执行以下命令,切换为阿里云镜像加速下载:

composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

选好目录,执行:

composer create-project topthink/think projectName

安装好后,进入项目目录,执行:

php think run

浏览器访问:

http://localhost:8000/

如果改变端口,则执行:

php think run -p 80

升级ThinkPHP6,进入项目根目录,执行:

composer update

实际部署中,应该是绑定域名访问到public目录,确保其它目录不在WEB目录下面。

3 配置调试模式

根目录下的.example.env重命名为.env,设置以下代码:

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,在项目根目录执行以下命令安装:

composer require topthink/think-multi-app

修改控制器的路径

打开app/myApp/controller/Index.php,调整namespace

-   namespace app\controller; 
+   namespace app\myApp\controller; 
    use app\BaseController;

然后通过http服务即可访问:

http://127.0.0.1/thinkphp6/public/index.php/myApp

URL重写

如果想省略index.php,即通过以下方式访问

http://127.0.0.1/thinkphp6/public/myApp

在public/.htaccess添加:

<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重写,这里仅做备忘。

5 多级控制器

目录结构如下:

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

Login.php代码:

<?php 
namespace app\myApp\controller\api; 
use app\BaseController; 
class Login extends BaseController
 {
     public function index()    
 {        
 return '二级控制器Login';    
 } 
}

设置之后就可以通过以下URL访问了:

http://127.0.0.1/thinkphp6/public/myApp/api/login

自动创建API控制器

也可以通过命令行自动生成控制器,新生成的控制器包含了预设代码。在根目录执行:

php think make:controller app\myApp\controller\api\Login --api

通过以上设置,基本完成了ThinkPHP6的最基础部署。

(推荐学习:thinkphp5)

以上就是ThinkPHP初步搭建API服务(详细步骤)的详细内容,更多请关注站长家园其它相关文章!

本文标签:  thinkphp框架

转载请注明来源:ThinkPHP初步搭建API服务(详细步骤)

本文永久链接地址:https://www.adminjie.com/post/6754.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    • centos7 终端中文乱码怎么办

      centos7 终端中文乱码怎么办

      centos7终端中文乱码的解决办法:1、查看服务器编码;2、查看终端xshell编码;3、设置“exportLANG="zh_CN.UTF-8"”;4、重启...

    • html5标签head和header有什么区别

      html5标签head和header有什么区别

      区别:1、head标签用于定义文档头部,它是所有头部元素的容器,而header标签用于定义文档的页眉(介绍信息);2、浏览器都支持head标签,而旧版本浏览器均...

    • docker可以装在虚拟机上吗

      docker可以装在虚拟机上吗

      docker可以装在虚拟机上;docker容器运行在虚拟机或者物理机上都可以,无论是虚拟机还是物理机,都是硬件和基础设施的一种交付方式,而docker容器主要就...

    • centos是linux系统吗

      centos是linux系统吗

      centos是linux操作系统的一个版本,centos主要分为两个版本:1、CentOSLinux版,该Linux版每两年发行一次;2、CentOSStr...

    • 搜索引擎对html5友好吗

      搜索引擎对html5友好吗

      搜索引擎对html5友好,搜索引擎蜘蛛能够更加轻易的抓取和索引使用Html5标准网站的内容。html5有利于搜索引擎抓取和收录网站更多的内容,对SEO很友好,可...

  • 买服务器送会员
  • 热门文章
  • 买服务器送会员