似乎国内企业更倾向于用 Yii(相比于 Laravel 一类的)?

2018-02-05 15:08:16 +08:00
 AlwaysBehave
想确认一下:
(国内企业)相比于 Laravel,似乎更多选用 yii
e.g. 科大讯飞似乎用的是 Yii
在类似的场景 yii 和 laravel 区别是什么?
看之前帖子有人说是安全和性能(?
安全这个…差在哪里?
性能的报告有人有链接吗?
还是文档?
还有什么其他原因?

注意:
1.不对比其他框架,只是想了解这两者的区别和为什么企业会选用(或者本身命题就是有问题的)
2.没有说两者谁好谁坏,请列具体情况 /数据
3.如果了解有用到 Laravel 的可以回复一下了解一下行情?(比如给赞的 api 是 Laravel )
18446 次点击
所在节点    PHP
72 条回复
AlwaysBehave
2018-02-05 19:43:47 +08:00
@oswuhan 可以具体说一下吗
AlwaysBehave
2018-02-05 19:44:53 +08:00
@torbrowserbridge 从目前回复结果来看似乎是的(样本少承认)
今天也是遇到用 yii 然后完全没用过 laravel 的企业,所以很好奇原因是什么
takashiki
2018-02-05 19:45:51 +08:00
我个人觉得吧,对于商用项目来说,用 laravel 虽然比用 yii 在开发阶段要更快更轻松,但是维护起来的话,还是用 yii 的项目维护起来舒服。
AlwaysBehave
2018-02-05 19:46:02 +08:00
@not4jerk 话说 laravel 的 blade 是不是有一样的问题?
目前用 laravel 也遇到类似的问题(
AlwaysBehave
2018-02-05 19:47:10 +08:00
@takashiki 是因为 ide 无法追踪 facade 之类的吗?
似乎有解决方案?
AlwaysBehave
2018-02-05 19:48:28 +08:00
@owenliang 可以问一下设计模式具体是指什么?
takashiki
2018-02-05 19:52:45 +08:00
@AlwaysBehave #25 并不是 facade 的原因,主要是维护 laravel 项目的时候经常需要在业务之外的地方花费精力。
AlwaysBehave
2018-02-05 19:53:57 +08:00
@takashiki 业务之外?例如?
似乎没遇到类似的情况…
takashiki
2018-02-05 21:14:43 +08:00
@AlwaysBehave #28 主要原因就是 laravel 太重了,比如流量稍微大一点,服务就可能会挂,比如更新版本时如果每个服务都跟着更新 laravel 的版本成本会比较高,比如很多非必要的东西可能会增加系统的不稳定因素 之类
owenliang
2018-02-05 21:31:49 +08:00
@AlwaysBehave 作者面向对象的抽象能力很强 合适的地方合适的模式 。 所谓设计模式,一个是设计,一个是模式,所谓 mvc 模式,activerecord 模式。
1762628386
2018-02-05 21:39:04 +08:00
yii2 框架就是配置文件太多了 而且自带的 BootstrapAsset 很鸡肋的 安装的第一件事情就是从布局中把这个删了 而且 Model 类是纯面向对象形式的 会有很多人不适应
loginv2
2018-02-05 21:43:08 +08:00
yii 对于我开始,足够好用了,不想换一个更新的来增加学习成本,有限的精力可以用来学别的
circleee
2018-02-05 22:06:03 +08:00
@lsylsy2 哈哈哈· 我就看!
caola
2018-02-05 23:07:07 +08:00
天天说 Laravel 很重很重,但你有没有用过 Laravel 的精简版 Lumen ?
以速度著称的 Lumen 都不知道要甩其他框架几条街,用做 API 和前后端分离的最佳框架之一。

当哪天你不想用 Lumen,还可以无痛升级到 Laravel
dobelee
2018-02-05 23:10:15 +08:00
yii2 簡直巧奪天工。
AlwaysBehave
2018-02-06 00:41:12 +08:00
@loginv2 我也是这么想的,所以也在考虑是否要接触一下 yii
AlwaysBehave
2018-02-06 00:44:43 +08:00
@takashiki 感觉实际上 laravel 要求的都算是很主流的配置?
5.6 和 7 之间的差距也不小,这种升级应当是需要的考虑的吧
当然业务求稳定可能是首要,但是 Laravel 的 LTS 周期也不短?锁死依赖应该问题不大
AlwaysBehave
2018-02-06 00:48:44 +08:00
@caola 目前是自己定制了一下 lumen 做前后端分离
感觉 laravel 的 make command 加上以后就很很完美了,lumen 阉割了这个感觉很难受
还有就是很多配置文件没有显式给出开有点困扰
shuimugan
2018-02-06 00:50:50 +08:00
刚接触 PHP 时喜欢框架之争,到处看框架和学习,接触过的框架可以说是非常多了
时至今日,接触过的 Web 框架有

CodeIgniter
Yii
CakePHP
Laravel
ThinkPHP
FuelPHP
Kohana
Zend
Symfony
Swoole
Workerman
Rails
Tornado
Django
Struts
Koa
Egg.js
ThinkJS

有一些是深度使用的,有一些是技术选型时通读文档,有一些是阅读了部分源码来看下一些设计和实现以及理念的
看到的东西多了,眼界也开阔了一些

Laravel 在我看来有几点无法接受

1. 都说 Laravel 模仿 Rails,但是 Rails 的哲学里"约定优于配置"却没抄过来,起码路由没有.

没有自动路由,每加一个 action 就要去配置文件里写一次,简直恶心死了.
最恶心的是你接手别人项目时候,路由还有几种风格的,分析时在 html 或者 js 里找到个接口,接着想找 php 的具体实现,必须先去看路由的配置文件

2. 全局函数以及 Facade

众多语言 /框架都是先引入,再使用,到 Laravel 这里就不是了
从文档上下文来看,并没有显式引入某个函数 /类,为什么从天而降给了个函数 /类给我用,你到底还偷偷引入了多少东西?

3.文档

文档太简陋了,一堆细节没说,具体实现太绕,经常要看源码

4.view 层

PHP 本身就是个强大的模板语言,非要再往上加个模板引擎,这就算了
不能忍的是 view 文件的路径分隔居然是用"."而不是"/"
当出现了像 view('activities.index')这样的代码,我要去找具体的 view 文件时,就要手工把"."转换成"/",然后在编辑器 /IDE 里跳过去
如果是 view('activities/index')的话,我只需要复制 activities/index 出来,然后使用编辑器 /IDE 的任意文件跳转功能,瞬间就转过去了
如果你非要说装个插件就能解决的话,当我没说过这一条

5.性能

大部分 Laravel 的性能优化文章都是千篇一律,无非就是升 php7,开 opcache,关闭 debug,开路由 /配置缓存,生成 composer 安装的所有依赖的 class map

废话,这些基础谁不会

在没做上述优化之前,我压测 hello world 的结果,qps 只有 5~7
在做完上述这些之后,qps 到了 13~15,哇,性能是原来的 2 倍,开心吗

这个 qps,我按住 F5 都能把网站给刷爆

同样的环境下,也做了上述的优化后,CodeIgniter,Yii,ThinkPHP 这几个框架的 qps 都在 200~400 之间

别说加了 db 操作之后大家都差不多,不少页面能命中缓存的情况下,io 的耗时比 Laravel 的耗时都要低

6.其他

Laravel 自带的队列

去年帮别人改代码时碰到的,消息是经过 PHP 的序列化放进队列的,可改造性差
队列为空就退出进程,官方还教你用 supervisor 去守护,喵喵喵?
神经病一样的存在


Laravel 的诞生并没有解决太多的痛点,或者说他解决的问题在我这里根本就不痛,还带我来了更多的坑,换我在 PHP 框架上选型我也选 Yii

Yii 文档丰富,细节到位,安全指南也够用,没那么多花哨的概念,代码规范又符合直觉,层次清晰,性能虽然没有常驻内存的框架好,但也够用,只需要专心处理业务就是

而且 PHP 不适合玩常驻内存,毕竟没有多少对 GC 的讨论,官方也没有什么指南给你去调优,因为本身设计就是请求完就销毁的

玩异步的话,除了 Swoole 框架有异步文件 IO 函数,其它框架都没有,除非自己用多线程模拟,否则一处阻塞处处阻塞,可选型方案太少,还不如换语言
e9e499d78f
2018-02-06 01:09:51 +08:00
@shuimugan #39 同意,特别是文档和队列。

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

https://www.v2ex.com/t/428592

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

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

© 2021 V2EX