Laravel 从入门到精通系列教程
转载;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 项目:教程、代码
Laravel 从入门到精通系列教程的更多相关文章
- 办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时)
办公软件Office PPT 2010视频教程从入门到精通系列教程(22课时) 乔布斯的成功离不开美轮美奂的幻灯片效果,一个成功的商务人士.部门经理也少不了各种各样的PPT幻灯片.绿色资源网给你提供了 ...
- Part 7:自定义admin站点--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- 第一章:模型层model layer -- Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 题外话: Django的教程写到这里,就进入 ...
- Part 5:Django测试--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. 本节将简要介绍Django的自动化测试相关内 ...
- SpringBoot系列之从入门到精通系列教程
对应SpringBoot系列博客专栏,例子代码,本博客不定时更新 Spring框架:作为JavaEE框架领域的一款重要的开源框架,在企业应用开发中有着很重要的作用,同时Spring框架及其子框架很多, ...
- Django简介--Django从入门到精通系列教程
该系列教程系个人原创,并同步发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- Django环境安装--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- Part 1:请求与响应--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- Part 2:模型与后台管理admin站点--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
随机推荐
- Ubuntu16.04 kaldi的简单配置
1.什么是kaldi kaldi是使用c++写的语音识别的工具,apache 授予了v2.0的证书(果真应验,apache旗下无弱将).kaldi旨在供语音识别研究员使用.kaldi在目标和范围上和H ...
- python+requests实现接口测试 - cookies的使用 (转载)
出自:https://www.cnblogs.com/nizhihong/p/6699492.html 在很多时候,发送请求后,服务端会对发送请求方进行身份识别,如果请求中缺少识别信息或存在错误的识别 ...
- web.py利用模板的详细步骤
<python网络编程学习笔记(10):webpy框架>(http://www.cnblogs.com/xiaowuyi/archive/2012/11/15/2771099.html#3 ...
- gdb中信号
信号(Signals) 信号是一种软中断,是一种处理异步事件的方法.一般来说,操作系统都支持许多信号.尤其是UNIX,比较重要应用程序一般都会处理信号.UNIX定义了许 多信号,比如SIGINT表示中 ...
- 在AspNetCore 中 使用Redis实现分布式缓存 (转载)
文章概念描述 分布式缓存描述:分布式缓存重点是在分布式上,相信大家接触过的分布式有很多中,像分布式开发,分布式部署,分布式锁.事物.系统 等有很多.使我们对分布式本身就有一个很明确的认识,分布式就是有 ...
- 20155318 《网络攻防》 Exp7 网络欺诈防范
20155318 <网络攻防> Exp7 网络欺诈防范 基础问题 通常在什么场景下容易受到DNS spoof攻击 DNS spoof攻击即执行DNS欺骗攻击,通过使用Ettercap来进行 ...
- 20155321 《网络攻防》 Exp3 免杀原理与实践
20155321 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 根据实验指导书,杀软有两个方法可以检测出恶意代码.第一种是基于特征码,即先对流行代码特 ...
- mfc CListCtrl 报表格式
知识点: CListCtrl报表格式 CListCtrl报表格式添加列 CListCtrl报表格式添加行 CListCtrl报表格式设置单元格 一.CListCtrl报表格式 类名:SysListVi ...
- mfc 类模板
类模板 创建类模板 添加成员变量 添加成员函数 定义类模板对象 一.创建类模板 template <class T,class T2> template <class T> 二 ...
- lm393
电压比较芯片,供电电压和输出电压一致.