这门课解决什么问题

Swoft 是一个基于 Swoole 原生协程的 PHP 框架,它的运行机制和传统的 Laravel/ThinkPHP 单次请求模式完全不同。很多开发者刚接触 Swoole 时,常被常驻内存带来的变量污染、连接池复用、协程上下文等问题折腾得焦头烂额。这门课聚焦在 Swoft2.x 的 HTTP API 构建,不谈微服务治理、RPC 或 WebSocket,只解决最具体的问题:如何用这个协程框架正确地写出一个能跑、能处理参数、能操作数据库的接口服务。如果你之前一直用 PHP-FPM 模式写业务,现在需要接手 Swoft 项目或公司要求用 Swoole 重构接口,这门课能帮你把框架的基本使用习惯掰扯清楚。

适合什么基础与建议怎么看

资料明确标注了不适合零基础学习者。这意味着你需要具备 PHP 基本语法基础,熟悉传统 MVC 框架的路由与控制器概念,最好对 HTTP 请求流程有基本认知。如果你连 GET 与 POST 的差异都模糊,建议先补齐基础再看。对于有 PHP 开发经验但没用过 Swoft1.x 的人,这套资料的讲解节奏比较友好。建议先集中看第一章的前四讲,把路由定义、路径参数和正则约束彻底跑通,再去看中间件和参数获取部分。不要跳着看,因为后续的参数处理逻辑依赖前面的路由基础。

学完能做什么与资料配合练习

看完这些资料,你能独立用 Swoft2.x 搭建一套完整的 HTTP API 接口服务,包括定义路由规则、获取各类请求参数、编写中间件干预请求流程,以及完成基本的数据库读写操作。资料配合练习的方式很直接:先跟着视频把商品 API 模拟的例子敲一遍,确保路由能正常访问。然后自己设计一个用户接口,把 GET 参数、POST 参数和 JSON 参数的获取都手动实现一次。中间件部分不要只看不练,自己写一个记录请求日志的中间件挂到控制器上,观察返回值的变化。数据库操作这块,建议搭一个本地测试表,跑通增删改查后再去碰更复杂的业务逻辑。


本课程是swoft2.x系列的第一篇,主讲http api的构建、数据库操作等。本课程假设你没有用过swoft1.x,讲解比1.x会更详细些。本课程不适合零基础

课程目录

*   第一章:swoft2x基础热身 cplist.push('第一章:swoft2x基础热身');/

  *   第1讲:创建http api的基本套路、商品API模拟、RequestMapping注解

  *   第2讲:创建Api(2):模拟商品列表、返回JSON格式、全局函数

  *   第3讲:创建Api(3):模拟商品详细页、路由path参数

  *   第4讲:创建Api(4):使用正则控制路由path参数

  *   第5讲:初步使用中间件、修改控制器方法返回值

  *   第6讲:创建API(5):GET参数、POST参数获取、模拟商品修改

  *   第7讲:创建API(6):在控制器中加入简易链式调用机制

  *   第8讲:创建API(7):JSON参数的最基本获取

  *   第9讲:创建API(8):JSON参数自动转为实体对象(上):自编函数、反射的使用

  *   第10讲:创建API(8):JSON参数自动转为实体对象(中):反射执行setter函数、返回 指定对象

  *   第11讲:创建API(8):JSON参数自动转为实体对象(下):成果测试、调用的基本姿势

*   第二章:数据库和验证器的使用 cplist.push('第二章:数据库和验证器的使用');/

  *   第12讲:数据库(1):基本配置、原生查询获取商品详细信息

  *   第13讲:穿插知识点:验证器的使用

  *   第14讲:验证器的使用(2) 练习、控制字符长度

  *   第15讲:验证器的使用(3) 验证类型、非注解使用、升级swoft版本

  *   第16讲:数据库学习: 连接池的基本配置

  *   第17讲:数据库学习: 数据库切换、数据源切换

  *   第18讲:查询构造器使用、关联表例子

  *   第19讲:模型的使用:生成实体、开发工具同步

*   场景练习:获取商品明细API cplist.push('场景练习:获取商品明细API');/

  *   第20讲:场景练习:获取商品详细、增加点击量

  *   第21讲:场景练习: 记录商品访问日志、模型保存的3种姿势

  *   第22讲:场景练习:升级2.0.4、使用协程加速商品数据取值过程

  *   第23讲:场景练习:让我们的链式调用也支持协程

*   场景练习:下订单 cplist.push('场景练习:下订单');/

  *   第24讲:场景练习:下单(1):订单表、基本验证、JSONForObject函数兼容性修改

  *   第25讲:场景练习:下单(2):订单数据提交、统一异常处理

  *   第26讲:场景练习:下单(3):主订单数据入库(单表)

  *   第27讲:场景练习:下单(5):子订单表设计、子订单验证规则

  *   第28讲:场景练习:下单(6):主子订单同时提交的验证方法(父子实体嵌套验证)

  *   第29讲:场景练习:下单(7):分别获取主子订单数据、数组映射成模型

  *   第30讲:场景练习:下单(8):主子订单双双入库、批量插入

  *   第31讲:场景练习:下单(9):主子订单双双入库事务控制

*   场景练习:订单过期处理 cplist.push('场景练习:订单过期处理');/

  *   第32讲:场景练习:订单过期(1):Redis配置、初步使用、切库

  *   第33讲:场景练习:订单过期(2):下单时插入订单号到redis、异步任务使用初步

  *   第34讲:场景练习:订单过期(3):key过期触发事件监听

  *   第35讲:场景练习:订单过期(4):启动自定义用户进程、监听redis实现订单过期

  *   第36讲:场景练习:订单过期:使用Redis延迟队列实现过期(上)

  *   第37讲:场景练习:订单过期:使用Redis延迟队列实现过期(下)

*   场景练习:用户登录统计场景 cplist.push('场景练习:用户登录统计场景');/

  *   第38讲:场景练习之统计(1):统计指定日期的登录人数

  *   第39讲:场景练习之统计(2):使用多协程任务统计指定日期的登录人数

  *   第40讲:穿插知识点:自定义命令的使用

  *   第41讲:自定义命令生成统计缓存数据(上)

  *   第42讲:自定义命令生成统计缓存数据(下)

  *   第43讲:使用协程加快统计缓存表的插入速度

  *   第44讲:结合缓存表快速统计大表的登录数据

*   场景练习:集成阿里云OSS cplist.push('场景练习:集成阿里云OSS');/

  *   第45讲:整合阿里云OSS、配置文件的读取

  *   第46讲:OSSHelper代码封装、上传字符串、以文件的方式输出等

  *   第47讲:模拟vue上传文件到swoft、再上传到OSS

  *   第48讲:练习:模拟vue+MarkDown编辑器、添加图片时上传到OSS

  *   第49讲:从OSS中读取图片(有权限和无权限两种)

  *   第50讲:补充课:markdown编辑器上传图片后替换链接

  *   第51讲:提交技术文章(1):提交文章数据入库(单表)

  *   第52讲:提交技术文章(2):草稿功能的简单方案(上)

  *   第53讲:草稿的简单方案:图片上传到oss指定文章目录中

  *   第54讲:上传文章附件之:服务端签名、js直传

  *   第55讲:(选学)上传文章附件之:使用第三方插件拖拽上传附件到OSS

*   第八章:WebSocket学习篇 cplist.push('第八章:WebSocket学习篇');/

  *   第56讲:升级框架2.0.6、创建websocket模块、入门

  *   第57讲:初步使用websocket控制器

  *   第58讲:简易文字直播(1):创建直播间、表设计、JsonParser格式传输

  *   第59讲:简易文字直播(2): 数据入库、获取最新直播间数据

  *   第60讲:简易文字直播(3): 显示直播间列表、定期加载

  *   第61讲:简易文字直播(4): 服务器推送的方式更新列表

  *   第62讲:简易文字直播 : 加入房间功能初步、redis存储数据

  *   第63讲:简易文字直播 : 向房间内所有人发送消息

  *   第64讲:简易文字直播 : 退出房间的基本套路(主动退出)

  *   第65讲:简易文字直播 : 简易实现在房间内聊天(练习课)