Vscode创建php项目

news/2024/4/27 17:04:55

1.安装中文插件(可安装可不安装)

在这里插入图片描述

2.安装主题(可安装可不安装)

在这里插入图片描述

3.安装和php相关的插件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.打开文件夹

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.路由操作

查看项目中的route路由
在这里插入图片描述
浏览器中访问think
在这里插入图片描述
隐藏index.php入口文件
在这里插入图片描述
访问ThinkPHP5.1开发手册,复制apache下面的那段话。
在这里插入图片描述
修改伪静态配置
在这里插入图片描述
复制这段话
在这里插入图片描述
在这里插入图片描述
index.php入口文件隐藏成功
在这里插入图片描述

6.修改配置文件

修改app.php
在这里插入图片描述
数据库配置database.php
在这里插入图片描述
在这里插入图片描述

7.删除项目部分内容

删除index,因为一般自己写
在这里插入图片描述
删除route中的路由
在这里插入图片描述

8 版本控制

以后版本升级直接将v1目录复制到v2中,在v2中更改。
在这里插入图片描述

9 全局异常类封装

如果访问错误会出现如下页面(太丑了,要改进)
在这里插入图片描述
因为我们删除了application下面的index,所以我们来生成一个控制器:
按Ctrl+`进入终端
在这里插入图片描述
输入php think make:controller index/Index命令
把index.php里面没用的东西都删除
在这里插入图片描述
在这里插入图片描述
封装一个异常类
在这里插入图片描述

配置自定义异常类
在这里插入图片描述
查看效果:
在这里插入图片描述
在这里插入图片描述

在ExceptionHandler.php同级目录下创建BaseException.php

ExceptionHandler.php里面的代码内容:

<?php
namespace app\lib\exception;use Exception;
use think\exception\Handle;class ExceptionHandler extends Handle
{public $code;public $msg;public $errorCode;public function render(Exception $e){if ($e instanceof BaseException) {$this->code = $e->code;$this->msg = $e->msg;$this->errorCode = $e->errorCode;} else {// debug开启,显示默认的异常if (config('app.app_debug'))return parent::render($e);$this->code = 500;$this->msg = '服务器异常';$this->errorCode = '999';}$res = ['msg' => $this->msg,'errorCode' => $this->errorCode];return json($res, $this->code);}
}

BaseException.php里的代码内容

<?php
namespace app\lib\exception;use Exception;class BaseException extends Exception
{public $code = 400;public $msg = '异常';public $errorCode = 999;public function __construct($params = []){if (!is_array($params))return;if (array_key_exists('code', $params))$this->code = $params['code'];if (array_key_exists('msg', $params))$this->msg = $params['msg'];if (array_key_exists('errorCode', $params))$this->errorCode = $params['errorCode'];}
}

10 全局验证层封装

终端使用命令创建验证类php think make:validate ceshiValidate
在ceshiValidate.php同级下右键单击创建BaseValidate.php,如下图:
在这里插入图片描述
BaseValidate.php内容:

<?php
namespace app\common\validate;use think\Validate;class BaseValidate extends Validate
{public function goCheck($scene = false){// 获取请求传递过来的所有参数$params = request()->param();// 开始验证$check = $scene ? $this->scene($scene)->check($params) : $this->check($params);if (!$check) {TApiException($this->getError(), 10000, 400);}return true;}
}

对于BaseValidate.php中使用到的TApiException方法在common.php中,如下图:
在这里插入图片描述
TApiException方法代码内容如下:

// 异常类输出函数
function TApiException($msg = '异常', $errorCode = 999, $code = 400)
{throw new \app\lib\exception\BaseException(['code' => $code, 'msg' => $msg, 'errorCode' => $errorCode]);
}

其他验证层写法不与BaseValidate.php类似,如UserValidate.php的内容如下,记得继承BaseValidate:

<?phpnamespace app\common\validate;class UserValidate extends BaseValidate
{/*** 定义验证规则* 格式:'字段名'	=>	['规则1','规则2'...]** @var array*/protected $rule = ['phone' => 'require|mobile','code' => 'require|number|length:4|isPefectCode','username' => 'require','password' => 'require|alphaDash',];/*** 定义错误信息* 格式:'字段名.规则名'	=>	'错误信息'** @var array*/protected $message = ['phone.require' => '请填写手机号码','phone.mobile' => '手机号码不合法'];// 配置场景protected $scene = [// 发送验证码'sendCode' => ['phone'],// 手机号登录'phonelogin' => ['phone', 'code'],// 账号密码登录'login' => ['username', 'password'],];
}

11.封装基类控制器

在终端执行命令:php think make:controller BaseController
然后在BaseController.php中写
在这里插入图片描述

<?phpnamespace app\common\controller;use think\Controller;
use think\Request;class BaseController extends Controller
{// api统一返回格式static public function showResCode($msg = '未知', $data = [], $code = 200){$res = ['msg' => $msg,'data' => $data,];return json($res, $code);}// api统一返回格式无数据static public function showResCodeWithOutData($msg = '未知', $code = 200){return self::showResCode($msg, [], $code);}
}

http://www.mrgr.cn/p/82778272

相关文章

方差与标准差

标准差,反映了一组数与平均值的紧密关系。 举例,有一组数,4,5,9,11,16。 第一步:求出平均值。 (4+5+9+11+16)5=9 第二步:求出各数与平均数的差 分别为,-5,-4,0,2,7 第三步:把差平方一下(目的就是转成正数) 结果为,25,16,0,4,49 第四步:把平方后的数求一个平均…

P1265 公路修建

原题链接 题解 1.每个城市选择一个与它最近的城市 2.如果三个或以上的城市申请修建的公路成环。如下图,A 申请修建公路 AB,B 申请修建公路 BC,C 申请修建公路 CA。则政府将否决其中最短的一条公路的修建申请; 但是这条不成立,请看这条题解 或者下图由此得出这题就是最小生…

手写SpringBoot(二)之动态切换Servlet容器

系列文章目录 手写SpringBoot&#xff08;一&#xff09;之简易版SpringBoot 手写SpringBoot&#xff08;二&#xff09;之动态切换Servlet容器 手写SpringBoot&#xff08;二&#xff09;之动态切换Servlet容器 文章目录 系列文章目录手写SpringBoot&#xff08;二&#xff…

在服务器(Ubuntu20.04)安装用户级别的cuda11.8(以及仿照前面教程安装cuda11.3后安装cudnn和pytorch1.9.0)

1、cuda11.8的下载 首先在cuda官网下载我们需要的cuda版本&#xff0c;这里我下载的是cuda11.8&#xff08;我的最高支持cuda12.0&#xff09; 这里我直接使用wget命令下载不了&#xff0c;于是我直接在浏览器输入后面的链接下载到本地&#xff0c;之后再上传至服务器的&am…

阿里云倚天服务器是什么?倚天服务器c8y、g8y和r8y详细介绍

阿里云倚天云服务器CPU采用倚天710处理器&#xff0c;租用倚天服务器c8y、g8y和r8y可以享受优惠价格&#xff0c;阿里云服务器网aliyunfuwuqi.com整理倚天云服务器详细介绍、倚天710处理器性能测评、CIPU架构优势、倚天服务器使用场景及生态支持&#xff1a; 阿里云倚天云服务…

上架难、买量贵?即构 Web 端 1v1 方案全力加速泛娱乐出海

1v1 视频社交以其功能简洁、互动性强、匹配效率高等特点,在陌生人社交玩法中饱受用户欢迎,平台仅需让两个用户通过匹配、选择等形式连通后,用户即可在房内进行 1v1 视频社交,且在社交的同时又极具私密性,满足了用户社交与 dating 的需求,盛行在中东土耳其、印度、南美等一…

SQL server 迁移至GBase 8c操作指南

SQL server 迁移至GBase 8c操作指南迁移数据库SQL server GBase 8c 首先下载依赖包perl 5.0以上版本,kettle linux 环境可以部署在gbase环境上使用手册:1、导出需要迁移数据库及表对象、视图、存储过程、自定义函数 登陆sqlserver management studio 选择数据库—右击--任务…

iOS系统下最佳的3款HTTP抓包工具:Thor、克魔助手和Http Catcher

引言 在苹果手机的iOS系统相对封闭的情况下,抓包工具并不是很常见。大多数人可能对这类工具并不熟悉,除了少数安全专家之外,一般用户很少会接触到这些工具。然而,在某些特定场景下,比如网络调试、安全测试等,抓包工具的作用不可忽视。本文将介绍三款在iOS系统下比较优秀的…

老阳:一文解答现在做Temu跨境电商还能不能赚钱

近年来&#xff0c;跨境电商行业持续火热&#xff0c;Temu作为其中的一员&#xff0c;也吸引了众多创业者和投资者的目光。然而&#xff0c;随着市场的不断饱和和竞争的加剧&#xff0c;很多人开始疑虑&#xff1a;现在做Temu跨境电商还能赚钱吗?一起去看看吧&#xff01; 任何…

AES加密解密算法

一&#xff0c;AES算法概述 AES属于分组加密&#xff0c;算法明文长度固定为128位&#xff08;单位是比特bit&#xff0c;1bit就是1位&#xff0c;128位等于16字节&#xff09; 而密钥长度可以是128、192、256位 当密钥为128位时&#xff0c;需要循环10轮完成加密&#xff0…

BOSHIDA DC电源模块的设计与制造流程

BOSHIDA DC电源模块的设计与制造流程DC电源模块是一种用于将交流电转换为直流电的设备。它广泛应用于各种电子设备中,如电子产品、工业仪器、电视等。下面是DC电源模块的设计与制造流程的简要描述: 1. 需求分析:在设计DC电源模块之前,首先需要进行需求分析。这包括确定输出…

ABC346 A-G 题解

ABC346 A-G题解 A题目AC Code&#xff1a;时间复杂度 B题目时间复杂度AC Code&#xff1a; C题目时间复杂度AC Code&#xff1a; D题目时间复杂度AC Code&#xff1a; E题目时间复杂度AC Code&#xff1a; F题目时间复杂度AC Code&#xff1a; G题目时间复杂度AC Code&#xff…

linux虚拟机没有ip,网卡服务无法启动的解决

最近使用虚拟机做实验,挂起虚拟机后再回复,发现经常无法使用xshell连接。 进入虚拟机后,使用 ifconfig 命令查看网卡状态,发现网卡的ip没有了 [root@host103 ~]# ifconfig ens33 重启网卡,发现报错。查看网卡目录,也就只有这一个网卡文件,也就是不存在其他网卡配置错误导…

如何制定具有挑战性的绩效目标,同时又能激励员工积极投入工作?

在现代企业管理中,绩效目标的设定不仅是评价员工工作成果的依据,更是激励员工积极投入工作的重要手段。然而,如何制定出既具有挑战性又能激励员工的目标,往往成为管理者需要深思熟虑的问题。本文将探讨如何平衡这两点,实现绩效目标的有效设定。 一、明确绩效目标的重要性 …

20240319-图论

图论练习题目 拓扑排序深度优先搜索方法广度优先搜索方法 无向无权图无向有权图有向无权图 利用广度优先搜索算法有向有权图 带排序的广度优先算法/dijkstra最小生成树prims算法Kruskals Algorithm 最小割 min-cut二分图 Bipartite Graph 队列例题1 所有可能的路径例题2 岛屿数…

列举和删除.NET的版本

删除前 dotnet --list-sdksdotnet --list-runtimesdotnet --info从工具的发布页面下载 .NET 卸载工具 仅删除标记为预览版的 .NET SDK (最高预览版除外)。 dotnet-core-uninstall remove --all-previews-but-latest --sdk因为没有符合条件的,所有并未产生删除。

【详细讲解React 快速入门教程】

&#x1f525;博主&#xff1a;程序员不想YY啊&#x1f525; &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家&#x1f4ab; &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 &#x1f308;希望本文对您有所裨益&#xff0c;如有…

Jenkins磁盘空间批量清理脚本

一、简介 Jenkins如果没有设置保留构建历史数&#xff0c;磁盘会随着使用次数增加而越来越满&#xff0c;于是需要批量清理一下。 二、清理脚本 找到Script Console 输入脚本&#xff0c;并点击执行&#xff0c;需要注意期望删除的构建历史编号&#xff08;可以查看下面的效果…

用Facebook开发客户的7点心得和技巧

一、在Facebook上通过“关键词搜用户&#xff0c;关键词搜公共页面&#xff0c;关键词搜小组”可以找到一些客户 关键词尽量用行业大词&#xff0c;不要加限定修饰词&#xff0c;太多限制的话&#xff0c;搜索结果会很少。 二、通过投Facebook广告 这里我使用的是Fomepay的卡…

Unity网络通信系统设计.md

Unity网络通信系统设计Buffer报文 BufferEntity类作为报文基类的作用包括:封装数据:BufferEntity类可以用来封装网络通信中的数据,方便在网络传输中进行处理和管理。提供数据缓冲区:BufferEntity类通常会包含一个数据缓冲区,用来存储待发送或接收的数据,以便进行网络通信…