学习搭建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 installcomposer update即可安装或更新所需的依赖包

↑摘自:https://blog.csdn.net/qq_21891743/article/details/130118372

 

3.接着找一个准备放项目的文件夹,右键→在终端中打开

执行命令:composer create-project topthink/think 项目名称

git clone https://github.com/top-think/think.git --depth 1
(--depth 1的含义是复制深度为1,就是每个文件只取最近一次提交,不是整个历史版本。)
(如果克隆报错提示需要的字节不够,可以运行git config --global http.postBuffer 524288000扩大缓存区(≈500MB))

如果出现 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

 

创建数据库:
create database test;

进入新创建的数据库:
use test;
为test数据库添加表明为users的数据表:
CREATE TABLE `test`.`users`  (
  `user_id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `user_name` varchar(30) NOT NULL COMMENT '用户姓名',
  `age` int NOT NULL COMMENT '年龄',
  `gender` enum('Female','Male') NOT NULL COMMENT '性别',
  PRIMARY KEY (`user_id`)
);

插入数据:
INSERT INTO users(user_name, age, gender)
VALUES
    ('wun', '30', 'Female'),
    ('qy', '24', 'Male');

为test数据库添加表明为news的数据表:
    CREATE TABLE `test`.`news`  (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `new_id` int NOT NULL COMMENT '新闻ID',
  `new_name` varchar(50) NOT NULL COMMENT '新闻标题',
  `user_id` int NOT NULL COMMENT '用户ID',
  `create_time` varchar(50) NOT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
);

插入数据:
INSERT INTO news(new_id, new_name, user_id, create_time)
VALUES
    ('105', '新闻3', '30', '2024-02-23 14:05'),
    ('106', '新闻4', '24', '2024-02-02 15:05');

查看表数据:
    select * from news;

 

 
查看字段名及字段注释:
SELECT COLUMN_NAME, COLUMN_COMMENT FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = 'test' AND TABLE_NAME = 'news';

 


修改字段注释:
ALTER TABLE news CHANGE user_id user_id int  NOT NULL COMMENT '用户ID';
 
大概的步骤是先启动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:

 

posted @ 2024-02-18 09:52  芝麻小仙女  阅读(41)  评论(0编辑  收藏  举报