学习搭建thinkphp
thinkphp8.0官方文档地址:https://doc.thinkphp.cn/v8_0/setup.html
composer官方文档地址:https://www.kancloud.cn/thinkphp/composer/35668
1.下载php
php官方地址:https://www.php.net/manual/zh/install.windows.manual.php
然后我参考了这份安装文档:https://learn.microsoft.com/zh-cn/iis/application-frameworks/install-and-configure-php-on-iis/install-and-configure-php
2.安装composer(我没有配置proxy代理,不知道后续会不会有影响,但我们后端大佬也没配,跟着他干准没错)
https://www.yii666.com/blog/460996.html
成功后运行composer -v会看到很酷的:
cmd修改镜像源到阿里:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
解除镜像命令:composer config -g --unset repos.packagist
使用Composer:在项目的根目录下,创建一个composer.json
文件,并通过命令行执行composer install
或composer update
即可安装或更新所需的依赖包
↑摘自:https://blog.csdn.net/qq_21891743/article/details/130118372
3.接着找一个准备放项目的文件夹,右键→在终端中打开
执行命令:composer create-project topthink/think 项目名称
如果出现 Your requirements could not be resolved to an installable set of packages.代码是由版本不对造成的, 首先要检查版本。(百度到的)
在项目目录下运行:composer -v 和 php -v 检查是否有问题
没有问题的话,执行:composer install --ignore-platform-reqs 或者 composer update --ignore-platform-reqs,忽略版本问题
4.运行命令打开项目
php think run -p 9001
上边的命令学的是网上别人写的,但是我的提示是:PHP 8.3.2 Development Server (http://0.0.0.0:9001) started
直接ctrl+左键打开的话页面是找不到的,最后改成了自己的ip地址就有了:
5.阅读文档进行学习……
6.安装mysql
参阅文档:https://blog.csdn.net/qq_42428269/article/details/86220402
我照着文档一路走下来是基本没别的问题,只有启动时候一直启动不了,最后发现是端口被占用了
所以重点:一定要确认端口是否被占用
可以通过以下方式检查端口占用情况:
https://answer.baidu.com/answer/land?params=pXNJ7KONF9jg5Ss3nwr9lynQVpdGan7SplYuTGtq8bepywJB8OY%2FF9fiKukCzHoD7gjSSUDyzEF7%2BoEDoIl4aKB1DDuD8aPwTVdRSjwj5fAlFCn2lmRYEPs4h3tvKd10F54Sd1LXUXU47Y0ly4wi8NWbgk3%2BNSiTs%2FK4uU%2F%2F89rW%2BkEUWtJ%2BFGTP%2Ba8fqXtji64X7MJLm%2FcsEPxLnHzQtQ%3D%3D&from=dqa&lid=9519e653000f9642&word=%E5%A6%82%E4%BD%95%E6%A3%80%E6%9F%A5%E7%AB%AF%E5%8F%A3%E6%98%AF%E5%90%A6%E8%A2%AB%E5%8D%A0%E7%94%A8
简而言之就是:打开命令提示符并以管理员身份运行,输入`netstat -ano | findstr [端口号]`来查看特定端口号的占用情况。
7.学习mysql创建数据库等一系列操作
参考的文档地址:https://zhuanlan.zhihu.com/p/651847880
头秃了。学不完,学不完啊
------记录一部分命令------
启动数据库:
net start mysql
8.照着基础教程学着写了个死返回:
在页面中进行测试:
9.
出现了新的问题,因为想要可视化的数据库界面,去了解了一下目前常用的mysql可视化工具,最后选择了phpMyAdmin,经过一番探索(白看半天),发现phpstudy里边就自带这个插件,可以手动安装:
安装完成之后,就可以在首页点击查看了:(点击数据库工具后的打开按钮,会显示当前可视化的工具)
但是与此同时,因为之前自己安装了mysql进行学习,发现phpstudy的mysql无法启动了,进行过一番探索之后(崩溃),发现应该是自己的MySQL的服务名与phpstudy的数据库的服务名发生冲突,从而造成phpstudy中的数据库无法启动,通过一下方式解决:
(1)打开cmd(以管理员的身份运行),将现有的MySQL服务删除。
进入命令提示符界面后,在命令行中使用sc delete命令删除MySQL服务名。(MySQL为自 己的服务名:sc delete MySQL
(2)MySQL服务名删除后,使用cd命令切换到MySQL安装目录中的bin目录下,我的是:D:\mysql-8.3.0-winx64\bin,或者直接在目录下启动CMD就行
(3)使用mysqld --install命令重新指定MySQL服务名(MySQL8为自己要创建的服务名):mysqld --install MySQL8
然后就发现phpstudy的mysql可以启动啦!但注意:启动phpstudy中的MySQL数据库时,要将自己的MySQL服务给关闭,否则将无法启动。
补充:
关于小皮的mysql启动如果遇到以下报错:
COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'utf8mb4'
原因:数据库编码不一致
可以修改mysql配置文件(my.ini)的以下内容:
[client] default-character-set=utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-character-set-client-handshake = true [mysql] default-character-set = utf8mb4
就可以正常启动了
补充:
如果tp项目安装的插件不能用(比如踏马的引了tp-jwt-auth之后直接运行报错),或者版本要求不匹配,可以使用composer进行卸载。
命令:
1.composer show -i
此命令可以展示当前依赖的列表及版本号
2.看到烦人的tp-jwt-auth之后,就可以用composer remove 依赖包名 的命令进行卸载,例如: composer remove thans/tp-jwt-auth,就可以正常卸载了
3.附带一个composer切换php版本的命令:composer config platform.php 8.3.2
使用thinkphp进行项目搭建后,为了测试接口能否正常访问,我使用了postman进行请求发起(参考文档https://www.php.cn/faq/490619.html)。
p.s.一开始我用的是tp8.但是版本过高了,后来改成了tp6(放声:只不过是~从头~再来~~)
1.首先在项目app目录的controller目录下新建一个文件夹:
这是一个login接口的学习,本意是通过插件生成一个有有效期的token作为登录状态校验,但插件死活不行,换了框架版本也不行,无论如何都报错,只能先写死了
2.在route目录下的app.php文件中,进行修改:
这里是统一进行了路由管理(吧),规定login请求的方式是post,以及规定了访问地址
此时直接打开页面看的话,可以看到打印出来的token:
如果使用postman请求,也可以看到返回:
然后模拟一下校验好了,反正用不了jwt(满脸疲色):
首先引入think\Request,然后在getUserInfo接口中写一个简单的判断(虽然正常都是要封装的),大概就是获取Authorization头传来的信息,首先判断有没有,没有的话等于是未登录状态,需要一种状态返回,然后是在有token信息传来的基础上进行二重判断,即有效期之类的校验,这里省略了。
可以看到在配置了请求头的posetman中发送请求,是可以拿到用户信息的:
但直接在页面中进行请求,则会判断为未携带token:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验