Laravel 还是 Lumen?相信有不少人在纠结这个问题,相对来讲,我并不推荐使用 Lumen,因为作者的更新维护很明显还是偏重于 Laravel 的,还有一个理由就是 Laravel 已经包含了 Lumen 的全部功能。
不要盲目追求性能,见到很多朋友出现的一个通用现象,在使用 Lumen 的时候各种想办法解决在 Laravel 里已经有的东西,比如 Session、模版引擎等,首先在姿势上就已经不正确了,它本就不是为了这种场景而生的东西。
最核心的一点很多人没有注意到,网上各种框架性能对比,都是在特别小的逻辑环境下测试的,但是,我们的应用远比它们复杂得多。所以,当你把一个应用开发完成时再来对比,你就发现差异并没有那么大了。在这种情况下我更倾向于更快的开发速度,更低的维护成本。
很多人一讨论性能就把这个问题的讨论点始终放在框架与语言上,这是错误的。同样的语言,同样的框架,不同编码水平的人,写出同样功能,性能也可以差几十上百倍。举一个真实的特别典型的例子,之前交流群里一哥们问了一个问题:为啥我就一个首页文章列表,Laravel 跑起来这么慢啊?这框架性能也太差了吧?结果点开他贴图一看,debugbar 上显示这次请求一共产生了43 条 SQL ……,他在循环里查询作者信息……,后来告诉他细看文档使用正确姿势以后,3 条 SQL 解决了问题。
关注结构,好的设计模式能够很好的帮你解决项目各模块间的复杂关系与交错的逻辑。网上有很多不错的模式实践,以及很多朋友基于 Laravel 做的开源项目也都有着不错的代码结构设计,比如 Summer 的 phphub5,当然了,这里也厚着脸皮推荐一下我写的一些轮子:https://github.com/overtrue。
看到很多朋友在 Laravel 里写着面条式的代码,挺心疼的,建议大家去仔细阅读并领会 Laravel 作者写的那本书《From Apprentice To Artisan》,开源中国有朋友翻译,叫《从百草园到三味书屋》。里面有很多关于 Laravel 作者对框架设计的思维模式,以及很多编码及应用架构方面的分享。
Laravel 本身就很美,加上正确的去使用,才能在我们的应用里发挥它的长处,避免面条式的代码,合理的拆分逻辑,才是我们应该努力学习与改进的地方,而不是整天纠结选什么框架与性能好坏。很多人说 Laravel 入门太难,不像某些框架那么易上手。连 PHP 基本语法都用不熟悉的人,确实上不了手,毕竟,这样的人就像木偶,需要一个人给他定死步骤拉着走才能知道干什么。
人生苦短,我用 Laravel 。
来自 https://laravel-china.org/articles/5079/laravel-or-lumen