前置:基本函数与数组;理解终端输入和 HTTP 输入不同。安装 PHP 后检查扩展,Composer 管 PHP 包而非替代解释器。
同一个脚本在命令行与 HTTP 请求中运行,有哪些输入和生命周期差异?
PHP 先处理输入并产生输出,Laravel 在其上提供路由、容器、ORM 与任务体系。先掌握字符串、数组、类型转换和错误,再理解框架约定;否则容易把语言行为误认为 Laravel 的魔法。
CLI 脚本 → 类型与数组 → 函数/类 → 异常 → Composer/自动加载 → 路由 → 数据库与测试
| 概念 | 必要解释 |
|---|---|
| 数组 | PHP array 同时承担有序映射的角色;过滤后键可能不连续,JSON 输出形状可能随之改变。 |
| 严格比较 | 未找到的 false 与下标 0 需要区分;先看函数返回契约,再决定如何判断。 |
| 请求生命周期 | 传统请求中的内存状态不应被当成持久存储;队列或常驻 worker 又有不同的对象复用边界。 |
先在 CLI 内掌握类型、数组、函数和异常,完成小工具后再进入 HTTP 与 Laravel。控制流文章可以在函数篇前阅读;类与框架注解不影响你先做一个函数练习。高级特性按项目实际使用补齐,不要求先学完 Fibers 才能保存待办。
版本集中看模块 README,项目依赖以 composer.json 和 composer.lock 为准;同时检查 PHP 扩展。官方语言入口:PHP 手册,按语言参考、函数参考和扩展分别查询。
- PHP 开发环境搭建 - PHP 8.5+ 与现代工具链
- 第一个 PHP 脚本 - CLI 与 Web 双运行模式
- 变量与类型系统 - 从动态到严格类型
- 函数与面向对象 - 构造器属性提升时代
- 控制流程 - 从 if 到 match 表达式
- 错误与异常 - Throwable 的世界
- 综合练习 - CLI 任务管理工具
- 按需补课:枚举、属性注解与 Fibers,根据后续代码实际使用的特性选择小节。
| 阶段与入口 | 练习输入与动作 | 通过条件 |
|---|---|---|
| 函数与输入:类型、异常 | 校验普通标题和全空白标题 | 正常值与失败可区分;CLI 输出和退出结果与约定一致 |
| 文件小工具:CLI 任务项目 | 创建任务后重启,再分别提供不存在和损坏的数据文件 | 已保存任务可读回;损坏文件产生明确错误,不悄悄覆盖为新空文件 |
| HTTP 边界:Laravel Todo API | 创建有效任务、提交非法数据、查询不存在 ID | 分别验证成功、校验失败和不存在;存储无无效记录。身份认证在基础 CRUD 验收后加入 |
每阶段保留实际输入、输出和一个失败案例。只阅读或复制成功代码,不等同于已经通过验收。练习用小功能承接已学知识,大型项目的扩展需求可按需选做。
Laravel 为主线,Symfony 用于理解组件化选择。队列、事件和缓存放在明确需要异步处理或减少重复读取后,先解释失败重试和一致性。
关键词解决“语法是什么意思”,内置函数解决“直接能调用什么”,标准库解决“导入以后能做什么”。框架 API 另列,避免把库函数误当成语言本身。以下是现有文章的完整导航,不代表每个 API 都已充分讲解;具体覆盖缺口进入审查台账。