为什么 Laravel 这么优秀

2024-01-26 10:19:42 +08:00
 godruoyi

https://godruoyi.com/posts/why-laravel

21143 次点击
所在节点    PHP
154 条回复
gongquanlin
2024-01-26 14:32:02 +08:00
另外补充一下,最简单的例子:
laravel 去做主子表批量联查的时候,会自动的把主表 id 拿出来聚合,然后再在子表里用 where in 查,查出来之后聚合一下,所以除了特别大的场景外只需要 2 条 sql 就把事情干完了。自己看看 mybatis 的 association 和 collection ,全部都是一条一条 sql 的查。就这种简单业务方面,spring 执行速度再牛逼,也干不过 laravel

另外说 laravel 慢,是基于 php-fpm 的慢,换成 workerman 之类的再跑下压测试试,抛开业务谈性能就是耍流氓

上面那些无脑喷的,说框架臃肿的,看过 laravel 和 spring 的源码吗?看完之后谁臃肿没数吗:)

spring 的优势在于强类型语言和生态,大家遵守开发规范写出来的都是差不多的代码,很多问题编译的时候就解决了
laravel 的劣势也是在弱类型语言和强设计模式,很多问题到了生产才可能暴出来;强设计模式在 php-fpm 下每次都要加载一遍工厂,所以慢,只要以常驻内存的形式跑,速度马上上去

我现在自己的项目做 spring 、php 、go 都有,总归而言开发速度:php >>> spring >= go ,生态 spring >>> php > go ,部署难易程度和资源性价比 go > php >>> spring
qq135449773
2024-01-26 14:35:50 +08:00
这个 ruoyi 我还以为是造了另一坨的那个 ruoyi
qq135449773
2024-01-26 14:38:26 +08:00
看了一下,即使你要吹这个框架,也应该限定一下是在 php 生态里,laravel 可以这么吹。

放在(可能应该除了 spring 的)其他语言生态里你说的这些东西基本全部都是基操。
joker8ren
2024-01-26 14:44:22 +08:00
@gongquanlin #41 php-fpm 确实有点恶心了 但好处也是有的 简单 无脑上 swoole 难度稍微大点 常驻 不支持 xdebug 看项目选择 spring 没细看过 但写起来确实不如 laravel 方便
GG668v26Fd55CP5W
2024-01-26 14:44:47 +08:00
laravel 确实很厉害,而且很能借鉴别的语言和框架,感觉 PHP 半个生态都在这里了,最近在学 livewire ,不用写 js ,filament 写表单页和管理后台太快了、还有 folio ,volt 用起来像在写 vue 。
james122333
2024-01-26 14:46:04 +08:00
@gongquanlin

这只是优化 当然 java 也很臃肿 但语言本身效能稍高一点所以在浪费资源 常驻运行本来你随便用个语言写都不差 但说真的没必要实现一样的功能无谓封装浪费资源
danhahaha
2024-01-26 14:46:07 +08:00
都说 php 门槛低,laravel 则又把门槛锯掉了一截,小白蜂拥而入,你说优秀不优秀?
gongquanlin
2024-01-26 14:54:18 +08:00
@joker8ren swoole 底层是 hook 了 php 的函数,本身很多原始的函数的功能被改变了,所以上了 swoole 之后很多库就不能用了;可以试试 workerman
GG668v26Fd55CP5W
2024-01-26 14:55:08 +08:00
怎么总说性能?连 P 站都在用 laravel 和 livewire ,人家是全球流量 top10 的网站。
james122333
2024-01-26 14:58:09 +08:00
@falcon05

你有钱要怎么搞都可以 效能的确很重要
GG668v26Fd55CP5W
2024-01-26 15:01:02 +08:00
@james122333 为啥不用二进制呢?富哥?
joker8ren
2024-01-26 15:01:51 +08:00
@gongquanlin #48 感谢老哥指导
james122333
2024-01-26 15:04:57 +08:00
@falcon05

不用用到二进制 你跟我说现在流行的语言是二进制的吗? 既然差不多你需要机器比人多就是多花钱
skyworker
2024-01-26 15:07:11 +08:00
@james122333 你说的效能, 指的是多招程序员所需支付的薪资, 还是多买负载均衡服务器需要的硬件投入?

服务器不要就不要了, 下个月不续费就行了;

程序员不要了, 下个月还要 N+1.

对老板而言, 还是买服务器硬件成本更低一些
caola
2024-01-26 15:20:54 +08:00
说 laravel 运行效率慢的,你用过 laravel 的 octane 吗?
你可以不会用 swoole ,但用 octane 模式来运行 laravel 那速度已经起飞了
至于写业务的开发效率能秒杀其他任何语言,没有之一。可以早早的摸鱼坐等下班他不香吗?
james122333
2024-01-26 15:25:42 +08:00
@skyworker

不用硬杠了 我说的是你用 laravel 相比其它技术的成本 不用拿人事成本出来救援 人的成本就是要花的
guiyun
2024-01-26 15:26:11 +08:00
@skyworker 这个确实是主要原因
我当时在南京找工作,Java 确实比 PHP 好找工作的多,我实习的适合 PHP 碰壁太多,发现 Java 岗位多,就趁着实习的期间转 Java 了(毕竟我是 Java 入门的,CE 学完后去学 PHP 了,就没学 EE ,所以转 Java 比较容易)
接触到 Spirng Boot 后,觉得这两个框架后台速度已经差不多了,Spring Boot 比 Laravel 复杂,但也没复杂多少了
尤其加上 JPA 或者 MyBatis-Plus ,这两后台开发速度差不多了
后面又去学了 Vue ,Spring Boot + Vue 的开发速度比我当时用 Laravel 的速度快多了(不排除经验的影响)

而且我当时还在用的 PHP 开发框架是 CodeIgniter, Laravel 框架可能与 CodeIgniter 大不一样,所以当时也不太喜欢 Laravel
guiyun
2024-01-26 15:28:41 +08:00
@gongquanlin
现在的版本不太清楚,在没了解过
18 年左右的 Laravel 的 ORM 没当时的 Spring Data JPA 简单
james122333
2024-01-26 15:29:44 +08:00
@caola
https://laravel.com/docs/10.x/octane
application server?
swoole 算在内
guiyun
2024-01-26 15:32:27 +08:00
@danhahaha 呃,我记得 laravel 门槛相比 CodeIgniter3 或者 TP3 高了一大截吧,我就是学完 TP3 后被 laravel 劝退了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/1011696

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX