转载;https://laravelacademy.org/laravel-tutorial-5_7
适用于 Laravel 5.5、5.6、5.7 版本,本系列教程将围绕一个 LTS 版本,然后采取增量更新方式,随着 Laravel 版本的升级不断进行更新,直到 Laravel 框架不再维护。比如这个教程是在 Laravel 5.5 教程的基础上,涵盖 5.6、5.7 版本的功能。
有人会问这个教程和官方文档有什么区别,文档相对晦涩,很多地方会让新手云里雾里,且各章节相互独立、松散,你可以将本系列教程看作一本针对 Laravel 的、开放式的、持续更新的、以实例驱动的、深入浅出的非官方实战指南。
本系列教程源码存放在 Github 上:https://github.com/nonfu/laravel-tutorial-code
更新频率:为保证教程质量,每周一、三、五更新。
一、预备篇
PHP 知识储备
搭建开发环境
- 基于 Vagrant + Virtual Box 构建本地开发环境:Homestead(适用于全平台)(Windows 平台安装还可以参考这篇教程)
- 基于 Docker 构建本地开发环境:Laradock(适用于全平台)
- 适用于 Mac 的轻量级开发环境:Laravel Valet
- 适用于 Windows 的轻量级开发环境:Laragon
- 创建并运行一个新的 Laravel 项目
二、基础篇
路由&控制器
- 路由入门:路由定义、参数传递及路由命名
- 路由分组:中间件、路由前缀、子域名及命名空间
- 控制器:MVC模式、控制器编写、依赖注入、资源控制器
- 路由进阶:模型绑定、兜底路由、频率限制和路由缓存
- 表单请求方法伪造 & 跨站请求伪造(CSRF)攻击保护
视图&Blade 模板
前端入门
处理用户请求
- 通过 Request 对象实例获取用户请求数据
- 通过 Laravel + Vue 组件实现文件异步上传
- 在 Laravel 控制器中进行表单请求验证
- 在单独的表单请求类中实现字段验证逻辑
- 通过匿名函数和验证规则类自定义字段验证规则
Artisan & Tinker
数据库和 Eloquent
- 连接配置和读写分离
- 通过迁移创建数据表
- 通过填充器快速填充数据
- 查询构建器入门:数据库增删改查
- 查询构建器进阶:构建复杂的查询语句
- Eloquent 模型入门:实现增删改查操作
- Eloquent 模型进阶:批量赋值与软删除
- Eloquent 模型进阶:访问器与修改器
- Eloquent 模型进阶:查询作用域(全局、局部、动态)
- Eloquent 模型进阶:模型事件及监听方式
- Eloquent 模型进阶:关联关系(上)
- Eloquent 模型进阶:关联关系(中)
- Eloquent 模型进阶:关联关系(下)
- 结合 Bootstrap + Vue 组件实现异步分页
三、进阶篇
用户认证与授权
- 通过内置脚手架快速实现用户认证
- 用户登录注册流程及多字段登录实现
- 基于多表的用户认证功能实现(前后台用户)
- 通过 Socialite 基于社交网络账号实现用户登录认证
- 不使用 Passport 实现基于 Token 的简单 API 认证
- 通过 Passport 实现 API 请求认证:单页面应用篇(Cookie授权令牌)
- 通过 Passport 实现 API 请求认证:移动端应用篇(密码授权令牌)
- 通过 Passport 实现 API 请求认证:第三方应用篇(授权码获取令牌)
- 通过 Passport 实现 API 请求认证:开放平台篇(客户端凭证令牌)
- 通过 Passport 实现 API 请求认证:沙箱测试篇(私人访问令牌)
- 通过 Passport 实现 API 请求认证:隐式授权令牌
- 通过 Passport 实现 API 请求认证:令牌作用域详解
- 基于 Laravel 框架内置脚手架快速实现邮箱验证功能
- 通过监听用户注册登录、邮箱验证事件实现简单的积分功能
- 基于 Cookie 实现基于 Session 的单点登录
- 基于 CAS 实现通用的单点登录解决方案(一):CAS 原理及服务端搭建
- 基于 CAS 实现通用的单点登录解决方案(二):CAS 客户端搭建及单点登录测试
- 基于 CAS 实现通用的单点登录解决方案(三):CAS 单点登录统一退出实现
- 通过系统自带的授权机制实现简单的用户权限管理
- 通过 Entrust 扩展包实现基于 RBAC 的用户权限管理
- 通过 Permission 扩展包实现基于 RBAC 的用户权限管理
请求与响应
- Laravel 底层是如何处理 HTTP 请求的
- 请求类 Request 剖析及其使用介绍
- 响应类 Response 剖析及其使用介绍
- Laravel 中间件底层实现原理剖析
- Laravel 路由底层实现原理剖析
- Laravel 异常报告与渲染底层逻辑
服务容器
- 依赖注入
- 绑定类到容器
- 门面与容器
- 服务提供者
测试
- PHPUnit
- 测试入门
- HTTP测试
- 浏览器测试
- 数据库测试
- 模拟
编写 API
- RESTful
- 控制器组织
- 读取&发送头信息
- Eloquent 分页
- 排序&过滤
- API Resource
- API 认证实现
存储与搜索
- 本地存储
- 云存储
- Session
- Cookie
- 通过 Laravel Scout 进行全文搜索
邮件和通知
- 邮件
- 通知
队列、广播、事件、任务调度
- 队列
- 事件
- 广播
- 任务调度
辅助函数&集合
- 辅助函数
- 集合
四、高性能 Laravel
Swoole 篇
- 安装及入门
- 基于Swoole构建高性能 HTTP 服务器
- 基于Swoole构建高性能 WebSocket 服务器
- 基于Swoole实现异步事件监听
- 基于Swoole实现异步队列任务
- 基于Swoole实现毫秒级任务调度
- 基于Swoole实现MySQL连接池
- 基于Swoole实现Redis连接池
五、实战篇
- 入门项目:博客应用(含上线流程,已完成)
- 入门项目:微信小程序应用(更新中)
- 进阶项目:前后端分离应用(已完成)
- 实战项目:电商项目(筹备中)
- 实战项目:直播项目(筹备中)
六、附录篇
用户投稿
Laravel 深入核心系列教程:
- 依赖注入,控制翻转,反射各个概念的理解和使用
- 如何实现Ioc容器和服务提供者是什么概念
- Facades外观模式背后实现原理
- Contracts契约之面向接口编程
- 中间件,管道之面向切面编程
- Laravel生命周期
- Laravel事件之观察者模式
- 新特性trait在Laravel中的应用
- 为什么laravel没有规划models目录?
- Eloquent ORM中的方法find方法的实现流程
- 如果开发Laravel扩展包和发布到composer
- Laravel与前端最佳实践
- 基于JWT的api认证
- 负载均衡,分布式,集群的理解,多台服务器代码如何同步
- 基于教程实现的一个简单网站实例
相关资源
- 离线文档下载(待更新完成后提供)
- Github 项目:教程、代码