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 ...
随机推荐
- PAT B1048 数字加密 (20 分)
本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 ...
- PAT B1045 快速排序 (25 分)
著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的 N 个互不相同的正整数的排列,请问 ...
- iOS VideoToolBox decoder解码失败(-12909和-12911)问题解决
对于任何H.264解码器而言,都要将SPS和PPS信息传递给解码器.FFmpeg内部做了设置,所以没有显示设置.但是对于硬件解码器来讲,开发者必须手动设置.另外,使用FFmpeg解码出来的视频帧是以Y ...
- Swift图书展示项目笔记
1.Swift语言特点 Extensions(扩展):就是向一个已有的类.结构体.枚举类型或者协议类型添加新功能.这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模) map: 得到一个 ...
- 【LeetCode148】Sort List★★bug
1.题目描述: 2.解题思路: 本题是要堆一个链表进行排序,并且要求时间复杂度为 O(n log n).很明显,要用到分治的思想,用二分法进行归并排序:找到链表的middle节点,然后递归对前半部分和 ...
- 隐马尔科夫模型研究 stock 以及 lotto
说明 本文参考了这里 由于数据是连续的,因此使用了高斯隐马尔科夫模型:gaussianHMM 一.stock代码 import tushare as ts import pandas as pd im ...
- flask使用sqlit3的两种方式
方式一:raw_sql import sqlite3 from flask import Flask, request, jsonify app = Flask(__name__) DATABASE_ ...
- STM32之HAL库、标准外设库、LL库
标准外设库(Standard Peripherals Library),应该是最早推出的版本,以前用STM32F103的时候,用的多 HAL(Hardware Abstraction Layer),硬 ...
- npm install —— 从一个简单例子,看本地安装与全局安装的区别
npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g ...
- 阿里云ECS 固定带宽变为按量付费的方式
阿里云ECS 固定带宽变为按量付费的方式 阿里云控制台 2.升降配置-降低配置-降低至最低配置 3.为按量带宽设置一个峰值,例如100M. 4.过几分钟,就自动变为按量付费的带宽了.