【小白专用24.11.14已验证】ThinkPHP8.0安装教程
一、框架介绍
1、框架简介和版本选择
Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架,是免费开源的、轻量级的、简单快速且敏捷的php框架。你可以免费使用TP框架,甚至可以将你的项目商用;
ThinkPHP8.0 是目前框架正式版的最新版本,本教程采用的是最常用且稳定的TP6.0版本。
ThinkPHP6.0 环境要求 PHP 版本是 7.2.5+以上,不支持5.1的无缝升级。
此处本人使用的是Apache24来部署web服务:【开启thinkPHP6安装前,请安装php,Apache24】
【小白专用24.5.26已验证】windows 11 安装PHP8.3 +Apache2.4_win11下如何安装win+apache+php环境-CSDN博客
二、安装步骤
2.1,composer下载及安装
Composer是一个PHP的依赖管理工具,可以用于管理项目中的PHP库和包的依赖关系。它可以帮助开发人员轻松地安装、更新和卸载项目所需的各种依赖库。Composer还可以自动解决依赖冲突问题,并且可以根据项目需要自动加载所需的库文件。使用Composer可以更好地组织和管理PHP项目的代码和依赖关系。
TP6.0版本开始,必须通过Composer方式进行安装和更新,所以你无法通过Git下载安装。
composer下载,下载网
Composer (getcomposer.org)https://getcomposer.org/
下载步骤如下
composer安装
下载完成之后双击安装程序进行安装
查看composer是否安装
安装完成后,我们可以通过命令窗口(cmd) 输入 composer --version 命令来查看是否安装成功:
测试是否安装成功打开命令提示符按win+r键,然后输入cmd就可以打开,再输入composer,回车出现下面的提示就成功了
确定composer安装好:
2.2安装 ThinkPHP6
现在,先启用服务器环境,测试本地 Web 环境是否正常【本人使用的是Apache24来部署web服务】;
在php.ini文件中启用了相应的扩展。找到php.ini文件,然后找到这2行,确保前面没有分号(;)注释符号,不然安装过程会出现问题(在文章末尾已展示出来);
extension=fileinfo
extension=zip
extension=gd
首次安装咱们需要打开控制台:
【技巧】
2.切换到指定目录,执行下载Thinkphp6命令。然后等待下载完成就可以了,文件下载与网速相关,慢的需要等一会。(安装的路径可以提前换到自己需要安装的路径,后面最后的 tp61,这个名字可以根据自己的需要自己取,是新建个 tp61 目录,可改名,这个目录就是我们后面会经常提到的应用根目录。
composer create-project topthink/think tp61
create-project
: 是composer中的项目创建命令topthink/think
: ThinkPHP的组件包tp61
: 是当前的项目目录(如果没有创建, 该命令会自动创建的),执行过程的截图如下所示
7.cd到tp61,然后输入:php think run即可运行成功
查看当前安装的tp61版本
cd到tp61,然后输入:php think version
即可运行成功
4. 浏览器访问测试是否部署成功
启动成功后,我们在浏览器中输入127.0.0.1:8081/tp6/public/查看即可,出现正常的thinkphp访问界面为成功!恭喜你,现在已经完成ThinkPHP6.0的安装!下图说明tp6部署成功,如此,ThinkPHP6.0 已经帮我们将域名自动部署到 public 里了。接下来就可以配置框架的文件了。
测试是否安装成功,thinkphp的对外部公开可以访问的目录是public。所以如果不另外设置,任何不包含public目录的路由都不可访问:此时我在浏览器中输入:http://localhost:8081/tp61/public或者http://localhost:8081/tp61/public/index.php/index/index(为什么这个路径也可以访问首页下面会讲到)显示如下内容,就说明tp6部署成功。
【本次使用的是Apache24来部署web服务,将网站访问目录改为tp61下面的public目录,就可以通过http://localhost:8081直接访问啦!】
如果 80 端口没有被占用的情况下,使用如下命令直接访问 http://localhost;
如果想修改端口的话 使用命令php think run -p 端口号
。
报错解决
安装完ThinkPHP后,可开启报错信息提示,便于调试使用。
在config文件的app.php开启显示错误信息,'show_error_msg' => true。
开启debug调试:
怎么回事呢?看不出来是哪里出错了,路径是没错的,下面我们开启debug模式来看看:
找到app同级目录文件.example.env,更名为.env,另外在文件中要加上一句:APP_DEBUG = true,保存。
(讲两点: 第一点是.env文件算是可有可无,其他配置文件首先会去尝试寻找.env文件的配置,并引入,找不到就用自己的配置信息。包括数据库配置database.php文件中,也会去寻找.env文件里面的配置信息。后面会慢慢学习到;另外一点是开启debug模式后,在后端向前端返回参数信息的时候,后面除了返回自己的 参数字符串信息 还会跟一大串的html代码,那些都是开启debug模式的自带的显示调试的信息,挺烦人的,也不知道咋办,关了吧,没调试,难排错,不关吧,获取个参数还得搞字符串分割,觉得烦可以改成app_dubug = false)
重新输入url访问:会跳出来调试信息,很直观的,告诉我们可能是路由设置的问题。
首页访问配置:
在vscode编辑器中打开tp6文件(前提是你vscode下好了插件并配置好了php环境的路径),看到默认下好的框架目录如下:初学我们需要重点关注的目录大致只有app、config、public三个
我们先看一下app目录:默认只有一个controller文件,且下面写了一个index.php类。在Index类的index()方法返回的信息就是我们访问默认首页显示的内容。
尝试改一下返回内容:
重新访问:
说到这里就不得不说一下,为什么测试的路径两个http://localhost:8081/tp61/public/或者http://localhost:8081/tp61/public/index.php/index/index都可以访问,而且路径中没有包含controller目录:
说一下首页访问路径:
1、访问http://localhost:8081/tp61/public/路由,会自动调用tp61框架中默认应用的默认控制器(index.php)中的方法(index class中的index()方法)。所以你如果想修改默认的首页,不妨去修改这些默认设置。
2、访问http://域名/最外层文件名/public目录/过滤文件index.php/控制器名(控制器和类名一样)/方法名/方法参数名/参数值,在路径中 index.php 是必须经过的文件,这一路由有点复杂,但是他就是这样设置的,愣是想改的话也可以,不过我还没试过。。 如下示例,我们用此路径访问index控制器中的hello,并传入参数:
输入url访问:会跳出来调试信息,很直观的,告诉我们可能是路由设置的问题。
解决办法:在config目录下找到第一个app.php文件打开,将with_route的值改为false即可。
再次访问:它又可以了
此时,你在controller目录下面尝试着创建其他的类也是可以访问的,示例如下:
controller下创建users.php,并编写同名的类。里面写一个love方法,看一下请求是否可以成功:
命名空间是为了声明这是一个控制器,应该是不能少的,毕竟thinkphp框架是采用MVC模式,model和view可以没有,控制器没有那还是框架嘛。。。
再访问一下:
前面一直强调默认应用,默认控制器,默认调用方法。那么控制器和方法都可以有多个,为什么应用还有默认之说,这不才一个项目吗?难道项目还可以有多个吗?答案是肯定的。
三、安装成功后 目录结构
- 6.0 版本目录结构的主要变化是核心框架纳入
vendor
目录,然后原来的application
目录变成app
目录。 - 安装后的目录结构就是一个单应用模式
www WEB部署目录(或者子目录)
├─app 应用目录
│ ├─controller 控制器目录
│ ├─model 模型目录
│ ├─view 视图目录
│ ├─ ... 更多类库目录
│ │
│ ├─BaseController.php 默认基础控制器类
│ ├─ExceptionHandle.php 应用异常定义文件
│ ├─common.php 全局公共函数文件
│ ├─middleware.php 全局中间件定义文件
│ ├─provider.php 服务提供定义文件
│ ├─Request.php 应用请求对象
│ └─event.php 全局事件定义文件
│
├─config 配置目录
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─console.php 控制台配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─filesystem.php 文件磁盘配置
│ ├─lang.php 多语言配置
│ ├─log.php 日志配置
│ ├─middleware.php 中间件配置
│ ├─route.php URL和路由配置
│ ├─session.php Session配置
│ ├─trace.php Trace配置
│ └─view.php 视图配置
│
├─view 视图目录
├─route 路由定义目录
│ ├─route.php 路由定义文件
│ └─ ...
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor Composer类库目录
├─.example.env 环境变量示例文件
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
└─think 命令行入口文件
ThinkPHP6 核心目录vendor
目录
三、配置数据库及基本使用
在config下的databases.php文件中配置数据库服务器地址、数据库名、用户名、密码等信息
四、视图安装
视图功能由\think\View类配合视图驱动(也即模板引擎驱动)类一起完成,新版仅内置了PHP原生模板引擎(主要用于内置的异常页面输出),如果需要使用其它的模板引擎需要单独安装相应的模板引擎扩展。如果需要使用thinkTemplate模板引擎,需要安装think-view扩展(该扩展会自动安装think-template依赖库)
该扩展跟tp6安装多应用扩展一样,需要安装think-template(命令:composer require topthink/think-view),切记一定要在项目根目录进行安装!
【小白专用 已验证24.5.31】ThinkPHP6 视图的安装及模板篇之传参和渲染-CSDN博客
可以会遇到的报错内容:Driver [Think] not supported.
原因:未安装thinkview模板引擎,解决方式,使用cmd窗口,将目录切换到ThinkPHP文件根目录下,使用composer安装thinkview引擎模板:
d:
cd /xampp/htdocs/tp
composer require topthink/think-view
五、使用thinkphp渲染HTML
在view文件下创建一个HTML模板,示例代码如下:
六、模板渲染和变量赋值
在安装好think-view后,我们就可以使用控制器来将不同的请求转到不同的视图了,并且可以传递一些参数过去。比如在原有的index.php控制器中,修改对应的一些方法,然后返回不同的视图,(最常用的是 view::fetch() view::assign() )。
【小白专用 已验证24.5.31】ThinkPHP6 视图的安装及模板篇之传参和渲染-CSDN博客
安装和更新命令所在的目录是不同的,更新必须在你的应用根目录下面执行,更新Thinkphp6核心,必须先切换到 tp6 根目录
update topthink/framework
更新操作会删除thinkphp目录重新下载安装新版本,但不会影响app目录,因此不要在核心框架目录添加任何应用代码和类库。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【小白专用24.5.26已验证】windows 11 安装PHP8.3 +Apache2.4_win11下如何安装win+apache+php环境-CSDN博客
【小白专用24.5.26 已验证】VSCode下载和安装与配置PHP开发环境(详细版)-CSDN博客
安装过程遇到问题
报错解释:
这个错误表明你在使用Composer(PHP的依赖管理工具)尝试安装ThinkPHP6框架时,下载topthink/think包失败了。原因是ZIP扩展没有启用。Composer在安装依赖时可以使用ZIP扩展来解压缩包,如果ZIP扩展没有启用,则无法解压缩下载的文件。
解决方法:
在Windows上,你需要确保在php.ini文件中启用了相应的扩展。
找到php.ini文件,然后找到extension=zip这一行,确保前面没有分号(;)注释符号。
修改完php.ini后,重启你的Web服务器,如Apache或Nginx,以使更改生效。
再次运行Composer安装命令,如composer create-project topthink/think your_project_name,以检查问题是否已解决。
更多推荐
所有评论(0)