使用VS Code开发ThinkPHP项目

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客

《ThinkPHP 8高效构建Web应用 夏磊 编程与应用开发丛书 清华大学出版社》【摘要 书评 试读】- 京东图书

ThinkPHP 8开发环境安装-CSDN博客

安装ThinkPHP项目的IDE

常用的集成开发环境(IDE)包括PHPStorm和Visual Studio Code,开发者可以根据个人偏好和项目需求选择安装。

PHPStorm是由JetBrains公司开发的,它提供了丰富的特性和工具,专门针对PHP开发做了优化。PHPStorm包括代码自动完成、错误检查、代码重构、版本控制集成等功能,非常适合专业PHP开发人员。

Visual Studio Code(简称VS Code)是由微软开发的轻量级IDE,它免费且可扩展。VS Code支持多种编程语言,包括PHP,通过安装相应的PHP扩展插件,可以实现类似于PHPStorm的编程体验。

读者可以根据自己的开发习惯和需求,选择适合自己的IDE进行安装和使用。

1. Visual Studio Code的安装

安装Visual Studio Code可以从官方网站https://code.visualstudio.com/下载Visual Studio Code,如图1-1所示。选择与当前操作系统相对应的版本进行下载。笔者选择下载的文件名是VSCodeUserSetup-x64-1.91.0.exe。下载完成后,双击安装文件,按照安装向导的指示进行安装即可。

安装完Visual Studio Code后,需要再浏览器中打开https://www.devsense.com/en链接,在页面上单击“Install”按钮,可自动在Visual Studio Code中安装PHP扩展,如图1-2、图1-3所示。PHP扩展安装完成之后,Visual Studio Code才能支持PHP的代码补全等操作,读者可以自行测试一下。

作者建议读者选用VS Code这个免费的集成开发环境来学习和运行本书的示例代码。

图1-1

图1-2

图1-3

2. PHPStorm的安装

PHPStorm是一个专为PHP开发者设计的集成开发环境,提供了许多针对PHP开发的高级功能和工具,如代码自动完成、调试器、版本控制等(注意,PHPStorm需要付费使用)。

PHPStorm可以从JetBrains官方网站https://www.jetbrains.com/phpstorm/download中选择适合读者当前操作系统的版本进行下载,下载完成后,按照安装向导的指示进行安装即可。

PHPStorm是开箱即用的,无须安装其他插件即可开始开发。

验证PHP开发环境

本节将使用PHP内置的Web服务器验证PHP是否安装成功。那么,为什么我们不需要安装Nginx呢?这是因为从PHP 5.4版本开始,PHP引入了一个非常有用的特性——内置的Web服务器。这个特性允许开发者在开发或测试阶段,快速地运行和调试PHP应用程序,而无须配置和启动外部Web服务器,如Apache或Nginx。

PHP内置的Web服务器是一个简洁、易用的服务器,它可以通过命令行轻松启动。它基于命令行脚本运作,使得在开发环境中模拟HTTP请求和响应变得非常方便。该服务器能够处理静态文件和动态PHP脚本。当接收到HTTP请求时,它会分析请求并将其转发给相应的PHP脚本进行进一步处理。此外,它还支持URL重写和路由功能,可以根据不同的URL路径来分配请求。

然而,需要注意的是,PHP内置的Web服务器仅适用于开发和测试环境。它并不适合用于生产环境,因为它缺乏专业、成熟的Web服务器所提供的全面功能和优秀性能。因此,在将应用程序部署到生产环境时,我们仍然建议使用成熟的Web服务器,如Apache或Nginx,来提供更强大的功能和性能。

【示例1-1】在当前用户的根目录下新建phpinfo.php文件,代码如下:

<?phpphpinfo();

打开终端,在该目录执行以下命令开启PHP内置Web服务器,命令如下:

php -S localhost:8080 -t .
  1. -S:表示Web服务器监听地址,localhost表示本地服务器,8080表示服务器端口。
  2. -t:表示Web应用根目录, “.”表示当前目录。

PHP内置Web服务器启动的效果如图1-4所示,注意在图下方的终端窗口中,显示了服务器启动的提示信息。

图1-4

如果Web服务器监听失败,一般情况下是因为端口被占用导致,此时使用其他端口重新执行命令即可。

使用浏览器访问http://localhost:8080/phpinfo.php可以看到phpinfo相关信息,如图1-5所示。

图1-5

恭喜你!已经成功搭建PHP 8开发环境,接下来我们将正式进入ThinkPHP 8的学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/65358.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WebSocket】tomcat内部处理websocket的过程

websocket请求格式 浏览器请求 GET /webfin/websocket/ HTTP/1.1。 Host: localhost。 Upgrade: websocket。 Connection: Upgrade。 Sec-WebSocket-Key: xqBt3ImNzJbYqRINxEFlkg。 Origin: http://服务器地址。 Sec-WebSocket-Version: 13。 服务器响应 HTTP/1.1 101 Swi…

软件耦合类型及相关说明

文字叙述太麻烦了&#xff0c;此内容个人觉得上图可能大家更容易接受。 ——话不多说&#xff0c;直接上图。

PL/SQL语言的并发编程

标题&#xff1a;深入探讨PL/SQL语言中的并发编程 一、引言 在数据库应用程序开发中&#xff0c;多用户同时访问和操作数据的情况非常常见&#xff0c;这就要求数据库系统具备处理并发操作的能力。而Oracle数据库的PL/SQL语言&#xff0c;以其强大的并发处理能力&#xff0c;…

TestMAX/DFT Compiler:时序单元的类型、连接顺序和后DFT优化

相关阅读 TestMAX/DFT Compilerhttps://blog.csdn.net/weixin_45791458/category_12865937.html?spm1001.2014.3001.5482 时序单元的状态 未映射的时序单元(Unmapped Sequential Cell) 在Design Compiler读取了一个RTL设计后&#xff0c;Design Compiler内置的HDL Compiler工…

8086汇编(16位汇编)学习笔记06.串操作、流程转移指令

8086汇编(16位汇编)学习笔记06.串操作、流程转移指令-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net 串操作 源操作数使用si&#xff0c;默认段为DS&#xff0c;可段超越 目的操作数使用di&#xff0c;默认段为ES&#xff0c;不可段超越 串方向 串方向由D…

7-10 最长公共子序列

目录 题目描述 输入格式: 输出格式: 输入样例: 输出样例: 解题思路&#xff1a; 详细代码&#xff1a; 题目描述 给出 1~n 的两个排列 P1 和 P2&#xff0c;求它们的最长公共子序列。 n 在 5~1000 之间。 输入格式: 第一行是一个数 n 接下来两行&#xff0c;每行为 n 个数&…

TCP off-path exploits(又一个弄巧成拙的例子)

承接前面几篇文章的观点&#xff0c;本文用一个安全攻击的例子说明为了解决一个伤害很低的低概率问题&#xff0c;会引入多么大的麻烦&#xff0c;这次是可怕的被攻击 (⊙o⊙)。 TCP 端口号只有 16bit&#xff0c;序列号只有 32bit&#xff0c;这意味着在强大攻击算力面前&…

YOLO11改进-注意力-引入自调制特征聚合模块SMFA

本篇文章将介绍一个新的改进机制——SMFA&#xff08;自调制特征聚合模块&#xff09;&#xff0c;并阐述如何将其应用于YOLOv11中&#xff0c;显著提升模型性能。随着深度学习在计算机视觉中的不断进展&#xff0c;目标检测任务也在快速发展。YOLO系列模型&#xff08;You Onl…

【Spring MVC 核心概念】揭秘概念和整体架构

你有没有想过&#xff0c;当你在浏览器地址栏敲下一个 URL&#xff0c;按下回车&#xff0c;后台到底发生了什么&#xff1f;如果你用的是 Spring MVC&#xff0c;那这一切其实被精妙地拆解成了 三大块&#xff1a;Model、View 和 Controller&#xff0c;共同完成了这次的任务&…

大表:适用于结构化数据的分布式存储系统

大家觉得有意义和帮助记得及时关注和点赞!!! 译者序摘要1 引言2 数据模型 2.1 行&#xff08;Row&#xff09;2.2 Column Families&#xff08;列族&#xff09; 2.2.1 设计2.2.2 column key 的格式&#xff1a;family:qualifier2.2.3 访问控制和磁盘/内存记账&#xff08;acco…

【AIGC-ChatGPT副业提示词指令 - 动图】魔法咖啡馆:一个融合创意与治愈的互动体验设计

引言 在当今快节奏的生活中&#xff0c;咖啡早已不仅仅是提神醒脑的饮品&#xff0c;更成为了一种情感寄托和生活态度的表达。本文将介绍一个独特的"魔法咖啡馆"互动体验设计&#xff0c;通过将咖啡与情感、魔法元素相结合&#xff0c;创造出一个充满想象力和治愈感…

xterm遇到的问题及解决方案

xterm遇到的问题及解决方案 /r插入终端导致的之后插入的数据覆盖了改行头部的数据 问题说明 如图所示&#xff0c;当在一行输入的候&#xff0c;输入的l插入到了改行的头部。 查看ws返回数据 可见ws返回的信息存在\r字符&#xff0c;在xterm.js中\r是回车字符的意思&…

Chrome被360导航篡改了怎么改回来?

一、Chrome被360导航篡改了怎么改回来&#xff1f; 查看是否被360主页锁定&#xff0c;地址栏输入chrome://version&#xff0c;看命令行end后面&#xff08;蓝色部分&#xff09;&#xff0c;是否有https://hao.360.com/?srclm&lsn31c42a959f 修改步骤 第一步&#xff1a…

blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质

描述&#xff1a;在blender中合并的模型导出为glb&#xff0c;在threejs中导入仍显示多个mesh&#xff0c;并不是统一的整体&#xff0c;导致需要整体高亮或者使用DragControls等不能统一控制。 原因&#xff1a;模型有多个材质&#xff0c;在blender中合并的时候&#xff0c;…

C语言----输入输出

目录 输入输出 1.按格式输入输出 2. 按格式输入 3. 按字符输入输出 输入&#xff1a; 输出&#xff1a; 垃圾字符回收 1. 通过空格回收 2. %*c 3.getchar&#xff08;&#xff09; 强制类型转换 输入输出 分为按格式输入输出和按字符输入输出 1.按格式输入输出 通…

leetcode hot 100搜索回溯

39. 组合总和 已解答 中等 相关标签 相关企业 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candi…

计算机网络 (10)网络层

前言 计算机网络中的网络层&#xff08;Network Layer&#xff09;是OSI&#xff08;开放系统互连&#xff09;模型中的第三层&#xff0c;也是TCP/IP模型中的第二层&#xff0c;它位于数据链路层和传输层之间。网络层的主要任务是负责数据包从源主机到目的主机的路径选择和数据…

WebRTC服务质量(11)- Pacer机制(03) IntervalBudget

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…

一维、线性卡尔曼滤波的例程(MATLAB)

这段 MATLAB 代码实现了一维线性卡尔曼滤波器的基本功能&#xff0c;用于估计在存在噪声的情况下目标状态的真实值 文章目录 一维线性卡尔曼滤波代码运行代码介绍1. **初始化部分**2. **数据生成**3. **卡尔曼滤波器实现**4. **结果可视化**5. **统计输出** 源代码 总结 一维线…

探索 .idea 文件夹:Java Maven 工程的隐形守护者

一、.idea文件夹深度解析&#xff1a;IntelliJ IDEA项目配置的核心 在Java Maven工程的开发环境中&#xff0c;.idea文件夹扮演着举足轻重的角色。这是IntelliJ IDEA项目特有的一个配置文件夹&#xff0c;它包含了项目所需的各种配置信息&#xff0c;以确保项目能够在不同的开…