就像措辞的相互借鉴领悟一样,框架之间也是这样的。我们不能说 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 框架的利用以及对部分源码的阐发。
当然,水平有限,之后文章中的疏忽也在所难免,也欢迎大家随时监督反馈。