如何高效地学习 Laravel 框架?
240

file

知乎邀请回答的问题 laravel除了文档外,还有什么文字和视频教程推荐,最好列出学习流程,先学哪些再学哪些? ,也在社区做下记录。

学习策略

Laravel 是个功能齐全的全栈框架,学习她相当于你在学习成为全栈工程师。如果你之前没有学习过类似的全栈框架,你会发现你很快会被埋进大量的技术概念和专有名词里。这并不是你不够聪明,而是:
人类短时间内的记忆和信息处理能力都是有限的,当短时间内暴露在大量的信息面前时,你的注意力会被严重分散,带来的是挫折感和烦躁不安。

所以,我们需要一套更加聪明的学习策略。

我将框架知识分类为以下:

每一个分类下都有非常多的概念需要学习,但是很明显,学习框架的使用要比学习底层实现原理要简单有趣多了,并且因为学习的愉悦性高了,我们能记得更牢固。

当你有一定的框架使用经验以后,再去学习底层实现的概念,你能更好地理解这些技术概念的来龙去脉,最终达到会事半功倍的学习效果。并且这时候学习底层实现,也会让你对框架的理解更加深入,你会发现你对框架使用技巧会变得更加灵活。

用比较简单的话来讲,就是在一开始学习的时候,先不管底层实现,利用框架提供的功能,先建造一些可用的项目,等熟悉掌握了这些框架功能的使用以后,再去学习底层实现概念。

即使是做了分类,并且有了先后顺序还不够。因为单单框架使用这部分的知识,涉及的概念也是非常多,很容易陷入信息过载的情况。所以我们需要有一个循序渐进的方案,先学习简单的,常用的概念,然后再慢慢学复杂的,并且在学习的过程中要注意重复学习,这样概念才能记得越牢固。

推荐学习路径

1. 框架的使用知识学习

基于以上的思想,我创建了 《Laravel 实战课程》,计划中有三本(也有可能更多),分别是:

  • 第一本 —— 《Laravel 入门教程 - 从零到部署上线》
  • 第二本 —— 《Laravel 进阶课程 - 从零开始构建论坛系统》
  • 第三本 —— 《Laravel 高级课程 - 构架 API 服务器》

第一本书教授如何使用 Laravel 一步一步构建一个类似新浪微博的应用,书中很多技术话题会被一带而过,这是有意而为之的,我们希望让读者保持对编码线索的专注,不被篇幅悠长的名词解释分心。通过阅读本教程,你将学到如 HTML、CSS、JavaScript、PHP 和 Laravel 等 Web 开发相关的基础知识。不仅如此,本书还会对这些基础知识点进行延伸扩展,为你讲解一些在 Web 开发中更为专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流、Bootstrap 框架基本使用等。这些知识将为你未来的编程开发奠定下坚实的基础。

第二本以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。编码规范遵循 Laravel 项目开发规范 ,应用程序架构思路贴近 Laravel 框架的设计哲学。在论坛系统的构建中,我们将学到多角色用户权限系统、管理员后台、注册验证码、图片上传、图片裁剪,XSS 防御、自定义命令行、自定义中间件、任务调度、队列系统的使用、应用缓存、Redis、模型事件监控、表单验证、消息通知、邮件通知、模型修改器等知识。在本课程的学习中,你不仅能学到使用 Laravel 开发一个论坛项目,还能学到安全优先、高扩展性的大型项目架构经验。

第三本将以构建 API 服务器为目标,来展开。目前本课程正在紧张撰写中,敬请期待。

2. 框架的底层实现学习

学完了以上三本书,你将拥有一定的项目开发经验,对框架的功能使用也会有一个比较全面的系统性理解。这时候,会是学习『底层实现』的好时机。

底层实现的知识学习,可以从文档开始,打开 Laravel 的文档中心 —— d.laravel-china.org ,找到最新版本的 Laravel 文档,然后仔细阅读 2、3 遍。因为有了上面的项目经验,此时的文档阅读啃起来会轻松多了。
阅读文档后,可以尝试看下 Laravel 底层的源码,看看这些框架的功能都是怎么实现的。

学习过程中可以适当做笔记,例如:

错误的学习方法

一上来就开始啃文档 d.laravel-china.org

如果你是新手,有太多的新概念你需要学习,你会发现学习起来非常艰难,甚至怀疑文档是不是写的太烂了(社区里经常出现这种抱怨)。
事实上,不是文档写的太烂,而是你把文档用错了。文档的『目的』是快速查阅,一份优秀文档的标准是语言简练,释义,这个 Laravel 的文档做的很棒。但是,文档并不适合做入门学习使用,上面我们已经讲过,原因是信息量太大。

寻找网络上零散的课程进行学习。

如果你想学习单个概念,这些零散的小课程会很方便。但是,如果是想以阅读大量课程来达到系统性学习的目的,你将会很失望。很多时候你会感觉 —— 你好像学了很多,学了很久,以为自己学会了,但是心里还是没底气。
你需要的是通过项目,完整的项目,将所有的知识串起来去记忆。你的作品,清清楚楚摆在面前,看着你一步步构建出来的一套系统,自信心也会有所增加。

一开始就学习高级话题,如 服务容器服务提供器FacadesContracts、Repository 等

很多时候你会发现这些话题晦涩难懂,很难学习。并且即使你毅力比较好,死记硬背,很快也会忘记,学习效率非常低下。然后最重要的,学会这些概念,并无法使你掌握构建一个完整项目的能力。

EOF


Practice makes perfect.

本帖由 Summer 于 11个月前 加精
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 18

居然是第一个点赞的 呵呵

11个月前

@颜⑧ 我看了一半才想起来应该点个赞,结果被你抢先了呢。啊哈哈哈

11个月前

一直很想问,为什么2本书上来就考虑页面话,而不不是api first思想? 当然这样做也没有错,可是我感觉会让初学者感到学了laravel还有有很多时间去学习其他领域。 感觉好像不能体现出laravel的快捷。

11个月前

分享一个网站 http://itsolutionstuff.com/ ,都是laravel的demo。

11个月前
leo

@颜⑧ 一开始就前后端分离,对新手来说可能更难接受一点

11个月前
Artisan

已经动手做了两编 larabbs 了,感觉提升了很多,期待第三本

11个月前
朕略显ぼうっと萌

期待第三本

11个月前
ChiVincent

一開始學習就從文件開始啃的路過……

想當年還是 Laravel 4.2,有系統性的教學資源還沒有這麼多,當時被一堆新觀念如 Dependency Injection、IoC 之類的搞得暈頭轉向。

之後到了 Laravel 5.0,又來一狗票 namespace 之類的新玩意一下子無法接受。最後花了一整個暑假,把當時 Laravel 5.1 LTS 的程式碼全看完,才漸漸瞭解到 Laravel 設計上的先進之處。

雖然仍有缺憾,但就把「想法 => 原型 => 成品」的工作流程看來,Laravel 算是 PHP 中最優秀的解決方案。

11个月前

别的不说,这几本书是真的好...期待第三本

11个月前

学习方法很重要,对了才能事半功倍

11个月前

上周还在想 如何吃透这个框架 ,就有文章出现了。等第三本书上线。

11个月前
ibucoin

如果是已经看过官方文档的,我觉得可以从第二本开始学习。最近在看laracast的视频,动手做才是重要的,不过粗略的过一遍官方文档的好处在于有一些模糊的概念,结合实际懂得更快。

11个月前

表示十分认同

11个月前

Mark

11个月前

mark

9个月前

Mark

9个月前
qiuyuhome

学习的方式太重要了, 感谢分享. 前段时间一直在了解 IoC, 依赖注入 等概念, 虽然了解了, 但是还是不知道正确的应用场景, 现在看来, 还是先实战, 然后再学理论比较妥当. 就想在大学的时候, 实习回来再学习, 比先学习再实习, 有效率的多.

9个月前
Master-Xue

看到EOF,就想起了昨天开始学的C语言!!

2个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!