[完结] Laravel 6 From Scratch [Laracasts 免费视频中文语音]
喜欢就 点赞+收藏,因为可以给我动力,谢谢!
PS:顺便问一句,该不该等 Laravel 7 From Scratch 还是先搞完这个,纠结中……
不定期原文更新,不会频繁发博文刷屏,所以感兴趣的经常回来看看。有好的建议可以留言。
Laravel X From Scratch 是 Laracasts 的保留节目,这个系列从基础开始,一步一步的教你如何用对应版本的 Laravel 建立基础的 web 应用。刚开始都是基础的概念,然后一步步介绍一些更加高级的概念。一旦看完这个系列,基本上对整个 Laravel 提供的工具都会有一个了解了!新手必看。别忘了点赞+收藏!
第一部分:前期准备
1. 初窥 —— (B站视频地址)
在开始 Laravel 之前,我们先概略的了解一下一个请求发生时,到底在程序内部是如何运作的。
2. 安装 PHP, MySQL 和 Composer —— (B站视频地址)
开始之前,我们必须确保安装了合适版本的 PHP、 MySQL,当然还有 Composer。
3. Laravel Installer 安装器 —— (B站视频地址)
现在我们配置好了 Composer, 我们可以安装 Laravel Installer 并且配置成全局可用。这就可以让我们仅用一行命令就完成 Laravel 的安装:Laravel new app
。
4. Laravel Valet Setup —— (B站视频地址)
如果你是 Mac 用户就不必运行 php artisan serve
,你可以试试 Laravel Valet。
第二部分 路由
5.基础路由和视图 —— (B 站视频地址)
当我学习一个新框架的时候,我做的第一件事就是看看框架的默认页面时如何工作的。本课就一起看看 routes/web.php
。
6.传递 Request 数据到视图 —— (B站视频地址)
request()
帮助函数可以用来从任何 GET
或者 POST
请求中获取数据。本课,我们来学一学如何从查询语句中获取数据,然后传递给视图,并且也学会如何防止 XXS 攻击。
7.路由通配符 —— (B站视频地址)
通常,我们会希望路由器能够接受一个通配符。比如,当我们访问一篇特定文章时,我们就可以把文章 URI 中独特的部分把通配符替换掉。
8.路由到控制器 —— (B站视频地址)
如果我们可以用一个闭包来处理任何路由逻辑是很不错的,但是,对于一定规模的项目来说,我们几乎一定会用一个专门的控制器来替换闭包的做法。让我们看看如何实现吧!
第三部分 数据库操作
9.设置数据库连接 —— (B站视频地址)
目前为止,我们使用了一个简单的数组作为我们的数据源。这不是现实中的情况,让我们来看看如何设置一个数据库连接吧。在本课,我们讨论了环境变量,配置文件以及查询语句生成器。
10.Eloquent介绍 —— (B站视频地址)
前一课,我们使用了查询语句生成器从数据库获取了相关的文章。但是,我们还有一个方案可以选择:Eloquent。
Eloquent 不仅是一个提供了同样方法但是更加简洁的接口,用于查询数据库的类,同时它也是一个储存相关业务逻辑的绝佳之处。
11.迁移 —— (B站视频地址)
前课,我们手动创建了一个数据库表,这并没有反映出我们现实中的日常工作流。实际上我们都是用迁移文件实现的。本节课我们就一起来看一下它们。
12.在一行命令中创建多个文件 —— (B站视频地址)
如果我们需要创建多个文件,如果每次都打一行命令,显得十分繁琐,实际上我们可以通过简单的一行命令加上合适的选项就可以一次性创建所有你需要的文件,试试看吧!
13.业务逻辑 —— (B站视频地址)
只要有可能,你就应该使你的代码书写和表现方式真实反映出你所期待的行为,并且和你真实生活中口中说的保持一致。比如,如果你是学校里的,需要有一个方式来帮助学生完成任务,那就把这些词汇运用到你的代码中去。也许你可以有一个 Assignment
模型,并且包含一个 complete()
方法。
第四部分 视图
14.布局页面 ——(B站视频地址)
如果你再看一下 Laravel 提供的 welcome
视图,它包含了所有的 HTML 结构。这对于一个示例页面是没问题的,但是我们的实际开发中一定需要使用布局页面。
15.完善站点模板 —— (B站视频地址)
运用前几节课学到的技术,我们来下载一个站点模板,然后把它加到 Laravel 项目中,这个模板叫做 SimpleWork 。
16.设置一个可以高亮的菜单链接 —— (B站视频地址)
本课,我们会学习如何检测并高亮当前页面的导航按钮。我们可以使用 Request
facade 来实现。
17.通过 Laravel Mix 和 webpack 进行资源编译 —— (B站视频地址)
Laravel 提供了 Mix (一个关于 webpack 的操作工具)来帮助我们管理资源的匹配和编译。本课,我们演示一个基本的前端工作流程。
18.动态加载数据(1) —— (B站视频地址)
接下来我们来看如何动态的加载数据。在 about
页面,我们有一个文章列表。我们一起创建一个文章模型,然后加入一些简单的数据,最后动态的把它们加载到页面上。
19.动态加载数据(2)—— (B站视频地址)
我们继续完成这个练习,我们再创建要给显示完整文章的专门页面。
20.家庭作业解答 —— (B站视频地址)
我们看一下上一课最后留的作业如何做。为了显示一个文章列表,我们需要创建一个对应的路由,一个对应的控制器方法,并且视图中要对它们进行迭代和渲染展示。
第五部分 表单
21.七个 Restful 控制器方法 —— (B站视频地址)
我们应该对 7 个 Restful 控制器方法熟悉。本课,我们就一起来看看。
22. Restful 路由 —— (B站视频地址)
熟悉了 Restful 控制器,接下来就要熟悉 RESTful 路由了。
23.表单处理 —— (B站视频地址)
理解了 Restful 控制器方法和 HTTP 请求类型之后,是时候一起编写一个提交新文章的表单了。
24.提交 PUT 请求的表单 —— (B站视频地址)
浏览器,在现在,还是只认识 GET
和 POST
请求。所以我们只能通过提交一个隐藏的字段来额外的指明我们所需要使用的方法,以便于 Laravel 去正确的对应到相应的路由。一起来看一下吧!
25.表单验证基础 —— (B站视频地址)
在我们进一步去重构控制器之前,我们还要看看表单数据验证。目前,我们的控制器并不用户输入的到底是什么内容,我都直接把它们赋值然后视图储存到数据库中。这是绝对不行的。所以我们必须谨慎对待用户输入,一定要进行必要的验证。
第六部分 控制器技巧
26.利用路由模型绑定 —— (B站视频地址)
目前为止,我们手动获取数据库的数据,并且使用了路由的通配符。然而,Laravel 可以自动实现这个数据查询,感谢路由模型绑定。
27.减少重复 —— (B站视频地址)
我们的下一个技巧就是减少重复。如果我们回看 ArticlesController
我们在多个地方引用了 request keys 。实际上我们有一个更简单的方法。
28.考虑给路由一个名称 —— (B站视频地址)
给路由命名让你可以将 URI 变成一个变量。这样,一旦路由改变了,所有的链接都会自动更新,因为你只是引用了路由的名称而不是硬编码它们。
第七部分 Eloquent
29.基础 Eloquent 关系 —— (B站视频地址)
让我们回到 Eloquent 来谈谈关系。比如,如果我们有一个 $user
实例,我们如何获取他创建的所有项目呢?或者反过来,我们有一个 $project
实例,我们如何获取创建它的用户呢?
另外有专门的一系列视频讲 Eloquent Relationships.
30.理解外键和数据库工厂 —— (B站视频地址)
让我们再谈谈测试。如果一个文章和一个用户关联,那么我们就需要给它添加必要的外键和关系方法。为此,我们也快速回顾了数据库工厂和如何在开发和测试阶段使用它们。
31.多对多关系 —— (B站视频地址)
下面,我们会来讲讲更加复杂的“多对多关系”。为了讲解这个概念,我们会使用常见的文章和标签作为案例。很快我们就意识到,我们需要第三张数据表来关联一篇文章和多个标签,以及一个标签和多个文章。
32.把所有标签显示在每篇文章下 —— (B站视频地址)
现在我们学会了如何构建多对多的关系,我们可以最终通过视图来进行使用了。并且最终,我们可以通过标签来筛选文章了。
33.多对多关系的添加和验证 —— (B站视频地址)
我们现在理解了如何从一个被连接的数据表中获取和显示记录。下面我们就开始演示如何通过 attach()
和 detach()
方法来一次插入一个或多个记录。但是,我们也要进行必要的验证,以避免恶意用户插入非法值。
第八部分 授权
34.快速建立访问限制体系 —— (B站视频地址)
感谢 laravel-UI,我们可以快速建立对注册、session 处理、密码重置、邮件确认等等的完整访问限制体系。最棒的是,你根本无需关心实现细节,并且只需要几分钟就可以建立起来。
35.密码重置流程 —— (B站视频地址)
本课,我们会讨论基础的密码重置流程。如果一个用户忘记了密码,一系列的事情会发生,他们会提交一个请求,我们会为他们准备一个和他们的账号关联的唯一的 token,然后我们给他们发送一个邮件,其中包含一个访问网站的链接,我们验证链接中的 token,如果它存在于数据库中,我们就允许用户重设密码。幸运的是,laravel 会自动为我们实现所有这一切!
第九部分 核心概念
36.Collection —— (B站视频地址)
我们的第一个核心概念是 collection 的链式操作。你一定已经了解过了,比如从数据库获取多个数据的时候,一个 collection
的实例会被返回。它不仅仅是一个数据的打包,而且还提供了一系列十分便利的方法可以让我们轻松对它们进行操作。
37.CSRF 攻击和举例 —— (B站视频地址)
Laravel 提供了跨站请求攻击(CSRF)的保护机制,不过我们仍然需要理解到底这是什么意思。本课,我会给大家看一些案例,一个 CSRF 攻击是如何执行的,并且 Laravel 是如何给我们提供保护的。
38.服务容器基础 —— (B站视频地址)
Laravel 的服务容器是它整个框架的核心支柱之一。在我们查看框架实际的服务容器之前,我们先自己写一个简单的服务容器出来。这会让我们对服务的绑定和解析有更直观的理解。
39.自动解析依赖 —— (B站视频地址)
现在我们理解了服务容器的基础,我们来看看 Laravel 的实现吧。当我们深入查看时,抛开基础,它甚至可以自动实现对象的构建。这意味着,我们可以直接“索取”你想要的对象,而 Laravel 会尽力的帮你通过 PHP 的反射 API 来读取依赖关系然后把你需要的提供给你。
40.Laravel Facades 解释 —— (B站视频地址)
现在我们对服务容器有了一个基本的理解了,我们可以来谈谈 Laravel facades 了,它为框架所有底层组件提供了一个方便的静态接口。本课,我们会一起看看它基础的结构,如何找到底层的类,以及什么时候我们会选择不去使用 facedes。
41.服务提供者 —— (B站视频地址)
我们花了两节课时间讨论了 Laravel 的服务容器和 facades。基于这些内容,我们讲服务提供者就容易多了。一个服务提供者是用来注册服务到容器的地方,并且一般用来配置你的程序。
第十部分 邮件
42.发送原生邮件 —— (B站视频地址)
在 Laravel 中发送邮件最简单的方法是 Mail::raw()
方法。本课,我们会学习如何提交一个表单,然后从请求中读取邮件,最后发送一个邮件给用户。
43.用 Mailtrap 模拟一个收件箱 —— (B站视频地址)
在开发模式下用 log 来查看邮件是很方便的,但是让我们来切换到 Mailtrap 。这让我们可以模拟真实情况下的邮箱收件箱,这在我们开始发送 HTML 邮件的时候特别有用。
44.使用 Mailable 类发送 HTML 邮件 —— (B站视频地址)
目前为止,我们只发送了纯文本邮件。让我们开始发送 HTML 文本的邮件吧!我们使用的是 Laravel 的 mailable 类。
45.使用 Markdown 模板发送邮件 —— (B站视频地址)
我们也可以通过 makedown 语法来写邮件。本课,我们可以学会如何通过框架来发送格式良好的邮件。如果我们需要调整 HTML 的格式和样式,我们也可以把 mailable 类的资源发布出来进行自定义修改。
46.Notifications 还是 Mailables —— (B站视频地址)
目前为止,我们只讲了 Mailable
类的邮件发送,然而,我们还有一个方法可以考虑。就是 Notification
类,它可以被用来通知用户,在用户在网站上做了某些行为之后。不同之处在于用户最终如何被通知到。当然,我们还是可以通过邮件提醒,但是我们也可以通过文本消息,Slack 提醒,甚至邮寄一个实体卡片!
第十一部分 通知
47.数据库通知 —— (B站视频地址)
一个通知可以通过任意数量的渠道发送,也许一个特别的通知可以通过用户邮箱,或者网站提示来发送。我们在本课一起来看看吧!
48.只要5分钟,发送 SMS 通知 —— (B站视频地址)
这是一个轻松的练习。我们会选择我本人从未尝试过的一种通知方法,SMS 消息。你们会看到,即使我从无经验,要实现 SMS 消息的发送也是十分的容易,当然你们也可以做到。
第十二部份 事件
49.事件的优点和缺点 —— (B站视频地址)
事件为你的应用中的某些部分提供了一个发送公告的能力,它能够遍及整个系统。本课,我们不仅会看看事件的重要功能,也会讨论它的优缺点,帮助你自己决定是否采用事件功能。
第十三部份 授权
50.仅限授权用户访问 —— (B站视频地址)
对于一个典型的网络应用,某些行为必须限定给授权用户。比如只有讨论的发布者可以选择哪个回答是最佳答案。如果是这个情形,我们就必须编写必要的授权逻辑。我们将在本课讨论。
51.授权过滤 —— (B站视频地址)
几乎不可避免的,你的应用中的某些用户会获得某些特权和访问权。比如,一个论坛版主或者网站站长。这种情况下,我们可以分别使用 before
和 after
的授权过滤,在意向策略被测试之前。
52.猜测能力的名称 —— (B站视频地址)
这是一个可选的特性,你可能会用到。如果你从控制器授权时排除了能力的名称, Laravel 会尽力猜测去调用合适的策略。它是通过创建一个特定的 restful 控制器方法和相关策略方法的映射来实现的。
53.以中间件实现的授权 —— (B站视频地址)
如果你不想在控制器方法中去实现授权策略,你也可以采用路由特定中间件来实现。本课我们就来一起学习。
54.角色和能力 —— (B站视频地址)
我们再加深一些印象。从一个全新的 laravel 应用开始,我们建立一个基于角色的授权系统,这样我们可以动态的给每一个用户授予或者收会特权。
源代码地址:GitHub。
本作品采用《CC 协议》,转载必须注明作者和本文链接
homebrew 很好用吗?
你为什么可下载安装的这么快 推荐个科学上网方法 :joy:
成就20达成!
还有十天结束教学部分,实战案例部分另开一贴,VUE系列提上日程,也给大家做点贡献!欢迎鼓励!
更新完结。
@Epona @Jouzeyu @Remember 完结的帖子可以取消沉底吗?
支持楼主,已经加群了.