标题:【Laravel系列1】进入 Laravel 的世界

文章目录
    分类:PHP 标签:Laravel,PHP框架

    进入 Laravel 的世界

    欢迎来到 Laravel 系列文章的学习。从这篇文章开始,我们开始进入到 PHP 框架相关的学习中。在这其中,我们主要学习的就是 Laravel 框架,那么为什么是 Laravel 呢?明明 TP 、 Yii 也是很多人在使用的呀。

    为什么是 Laravel

    一说到 PHP 的框架,三巨头是绕不开的,也就是 ThinkPHP 、Yii 以及我们马上要学习的主角 Laravel 。当然,还有 CodeIgniter 、 CakePHP 以及大名鼎鼎的 Zend Framework 等等非常多的优秀框架。但是,从当前的市场环境来看,Laravel 框架是绝对的主流。TP 框架在 5.x 版本的时候,基本就像是一个 Laravel 的翻版,而 6.x 系列还没有详细的看过,不过总体的思想其实都是和 Laravel 很接近的。


    就像语言的互相借鉴融合一样,框架之间也是这样的。我们不能说 TP 或者 Yii 不好,而且还应该多多支持 TP 这样的优秀国产开源框架。但是他们确实在慢慢地向 Laravel 中的很多思想靠拢。所以,我们一次到位,直接来学习 Laravel 框架,同时也能加深我们对 TP 以及其它框架的理解。


    顺便说说我使用过的其它框架吧,在 TP 的 3.x 时期,使用过 TP 做过不少小网站,方便,简洁,确实很好用,国人能做出这么优秀的框架其实在当时来看也是很难得的。即使到现在来说,TP 也是除了 Laravel 之外在国内影响力最大的框架。Yii 在之前还是在一家公司用过2、3年,当时是 1.6 版本的,之后换了一家公司也继续使用过 2.0 版本的用了很长一段时间。不得不提的是,Yii 框架虽然说是由不少老外维护的,但其核心创始人也是我们中国人。加上鸟哥的 Yaf 之类的框架,我们国人在 PHP 领域中的贡献还真是不少的。除了这两个之外,目前使用的项目中,还用到了 Swoole 和 Hyperf ,这两个一个是扩展框架,一个是基于 Swoole 的 MVC 框架,同样也都是我们中国人开发的。


    不过,Swoole 相关的框架就不在我们这个系列的学习讨论中了,以后再开专门的系列文章来进行学习。


    话说回来,除了上面比较出名的之外,我还在实际的项目中接触及使用过 CodeIgniter 以及 CakePHP ,不过都是很早之前了。如果从路线图来说的话,那么我接触框架的顺序是这样的:Cake -> CodeIgniter -> TP -> Yii -> Laravel -> Hyperf 。目前在工作使用的,正是 Laravel 和 Hyperf 。


    注:Hyperf 中很多东西也有 Laravel 的影子,甚至很多内容是可以无缝迁移的。

    Laravel 优雅吗?

    “优雅”这个词,一直就是 Laravel 对外宣传的标语。确实优雅,最开始学习它的源码时,我就深刻的感觉到这人是不是 Java 转过来的,各种 Java 中的写代码的方式放到了 PHP 中,各种设计模式在这个框架中进行了应用。不过,就像前面说过的一样,各种语言的融合,软件工程的发展,让这些东西都不是某个语言的特定功能,而是所有语言都拥有的。


    我们知道,PHP 这种动态语言的最大特点就是上手快,但是,精深难。网上的段子是 PHP 的水货一大堆,水平无下限。而 Java 这种静态语言以及很早确立的各类规范让 Java 程序员的下限控制得很好。也就是说,不管你写得多烂,起码是有下限的。而在 PHP 中,一旦工程乱了起来,很多代码就会变得没有下限了,这个有时候还真不是你的水平能决定代码质量了。即使是水平非常高的 PHP 程序员,也很容易写出各种迷惑代码出来。


    而 Laravel ,正是为了解决这个问题,将你的代码规范起来。或者说,在底层上,代码是很规范的,至于上层代码怎么样,就看你能不能有自己的规范了。当然,我们也不能忽略 PSR 系列规范的作用。当然,现代的框架也基本都是遵循 PHP 的 PSR 规范的。


    然而,优雅的代价就是 速度 。这也是 Laravel 学习中绕不开的一个话题。在 Laravel 中,底层还有一个 Symfony2 框架。最底层的基础功能其实在 Laravel 中又是调用了这个底层的 Symfony2 框架,也可以说,Laravel 是对 Symfony2 的又一次优雅的封装。这种情况下,速度能快起来也是不太可能了。网上有各种框架之间速度的对比,大家可以自行查阅。


    因此,在实际的项目开发中,我们经常使用 Laravel 来进行后台功能的开发,而如果是前端需要应对大量的请求并发时,一般不太会采用 Laravel 框架。当然,并不是说不能用,在一系列的优化以及开启 OpenCache 的情况下,Laravel 也是很能顶的,毕竟大部分项目和大部分公司,能到 500 并发量的都是少数。

    学习 Laravel

    学习 Laravel 前,建议先看看我之前的 【PHP设计模式】https://mp.weixin.qq.com/mp/homepage?__biz=MzIxODQyNTU1MA==&hid=2&sn=cc43ada3eaf9133d0d804f94edc4b300 相关的系列视频和文章。这个是重点中的重点。


    其次,本机测试环境调试好 xdebug ,网上也有很多文章是讲怎么配 PHPStrom 或者 VSCode 进行断点调试的,这个东西也很重要,对于任何框架的学习来说,这玩意都非常有用。


    最后,跟着撸,这个是编程学习的通用法宝,当然,撸的同时一些基础知识也最好理解掌握下来,不行就背下来,面试的时候不会亏。

    总结

    好了,第一篇文章轻松些,同时这些也是我对 Laravel 的一个简单的理解。有兴趣的小伙伴可以再去官方文档更深入地了解一下 Laravel 的整个发展历史,也可以更加深入的查阅一下 Laravel 和其它框架之间的一些区别与联系。我们学习的主要目的还是深入的学习 Laravel 框架的使用以及对部分源码的剖析。


    当然,水平有限,之后文章中的纰漏也在所难免,也欢迎大家随时监督反馈。

    视频链接

    B站视频地址:https://www.bilibili.com/video/BV1eT4y1r7E1

    微信视频地址:http://mp.weixin.qq.com/s?__biz=MzIxODQyNTU1MA==&mid=2247486793&idx=1&sn=e8cb1b2a32687da63fe6e8f9381a60b2&chksm=97ebfce8a09c75fe017a0c4fe9686d8152ebac19d9fc031d37cec0986c1d9cf57017a5db8594&scene=27#wechat_redirect

    微信文章地址:http://mp.weixin.qq.com/s?__biz=MzIxODQyNTU1MA==&mid=2247486234&idx=1&sn=5057f63bc184064f79e3da5322019b7e&chksm=97ebfabba09c73ad2705b5b0833f87ee6e40abc62a8f0a0c832d41e3eae2deb55f727d0de665&scene=27#wechat_redirect

    搜索
    关注