这门课解决什么问题
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讲:简易文字直播 : 简易实现在房间内聊天(练习课)






