Laravel 框架是一个功能丰富、架构完善的框架,然而对于一个野路子 PHP 程序员来说要想上手不是那么简单的事,为什么呢?
Laravel 的核心概念你掌握了吗?
Laravel 中可能有许多你之前闻所未闻的概念,比如服务容器(Service Container)
、服务提供者(Service Provider)
、门面(Facade)
、契约(Contracts)
,如果你之前没有太多的软件架构经验,看了这些概念之后几乎肯定是一脸茫(meng)然(bi),然而这些东西才是 Laravel 精华的部分,如果你只是看看 Laravel 的路由怎么设置、请求数据怎么取、在哪放 Controller 、在哪放 Model就认为自己学会了 Laravel 的话,那我建议你不要用 Laravel ,因为你会发现你几乎不会从Laravel得到什么好处,你因此会嫌弃Laravel,我见过太多用人看了Laravel后说:
“Laravel好难用,我还是用我的CI 吧”。
框架与框架是不一样的,有些框架就是简单又傻瓜,让你随意的发挥,有些框架设计很精巧,你需要掌握它的设计理念和使用技巧才发挥他真正的威力。
Laravel 文档的坑
首先 Laravel 提供的文档说实话很一般,即便社区里已经把文档翻译成了中文,然而这或许并不是什么好事,你本身对一些Laravel作者本意的概念就不清楚,现在再上加一层语言之间的转换,这个过程或多或少会有含义的偏差和丢失,这几乎是不可避免的, 所以看文档还是尽量看原版的好。
其次中文文档中并未对某些基础概念做出明确的解释或者附注,这样对于未接触过这些概念的开发者来说理解这些概念就变的十分困难, 下面摘自 Laravel-china 提供的Laravel 中文文档中,关于“契约(Contract)”的解释:
Laravel 的 Contracts 是一组定义了框架核心服务的接口。例如,
Illuminate\Contracts\Queue\Queue
contract 定义了队列任务所需要的方法,而Illuminate\Contracts\Mail\Mailer
contract 定义了寄送 e-mail 需要的方法。框架对于每个 contract 都有提供对应的实现,例如,Laravel 提供各种驱动程序的队列实现,以及由 SwiftMailer 提供的 mailer 实现。
第一句就提到了一个名词核心服务
,请问什么核心服务
?核心服务
有哪些,这些东西几乎整个文档都没有给出过明确的解释,你只能在文档中靠别的内容来推测,这样就给文档阅读带来了很大困难,很多新手兜兜转转多少天好像也会用用 模型控制器写写功能了,其实对于Laravel的学习来说门都还没入呢。
学会Laravel 需要掌握哪些核心概念
我自己Laravel用的还不多,但是还是可以大概列下:
- 首先要掌握对 Composer的自动加载机制
- 系统架构(Architecture Concepts)里的概念是都要掌握的,有
服务容器
、服务器提供者
、门面
,契约
, 这些概念不掌握还是去用 CI 好了。
composer 中有4种自动加载机制,没安装过的先 安装 composer 试试。
服务容器
几乎就是Laravel框架设计的精华所在,其余服务提供者
、门面
、契约
都是一些软件设计思想在 Laravel 中的应用,至于路由
,视图
,控制器
等都是枝叶,直接翻文档或者代码注释看就可以了,Laravel 代码注释很详尽。
掌握了核心概念的好处是你基本上知道如何用Laravel 架构你的业务,以实现结构优雅,易于维护测试的程序,这时候才能体现出Laravel真正的价值,而不是关注于 Laravel路由的花哨,或者视图比别的框架怎么样,那些都不是重点。
后面我会分享一些对这些核心概念的理解。
转载请注明:大后端 » 怎样才算学会了 Laravel?