之前就看到有人在争 Laravel 和 Thinkphp 哪个好,我现在也想问问 yii 这个框架你们是怎么评价的?
因为我看到 yii2.0 都已经推出了那么久了,国内甚至连一个完完整整的中文文档都找不到。
他的文档我看得也很头疼,一个很简单的东西他会讲的非常复杂。比如说 Auth 验证器的文档如下
上面的代码中 ACF 以行为 (behavior) 的形式附加到 site 控制器。 这就是很典型的使用行动过滤器的方法。 only 选项指明 ACF 应当只 对 login , logout 和 signup 方法起作用。所有其它的 site 控制器中的方法不受存取控制的限制。 rules 选项列出了 yii\filters\AccessRule ,解读如下:
允许所有访客(还未经认证的用户)执行 login 和 signup 操作。 roles 选项包含的问号 ? 是一个特殊的标识,代表”访客用户”。 允许已认证用户执行 logout 操作。 @是另一个特殊标识, 代表”已认证用户”。 ACF 自顶向下逐一检查存取规则,直到找到一个与当前 欲执行的操作相符的规则。 然后该匹配规则中的 allow 选项的值用于判定该用户是否获得授权。如果没有找到匹配的规则, 意味着该用户没有获得授权。(译者注: only 中没有列出的操作,将无条件获得授权)
他给出的代码我就不贴上来了,反正看起来不是很顺畅。(我也不知道是不是我理解有问题,反正我看 Laravel 的代码就像看一篇英文文章一样很容易看懂,看yii就看的很晕,而且 Laravel 强调的配置化思想很重要,配置和组件分离,职责单一)
而且 Laravel 生成 form 标签,生成 input 表单甚至都是用 php 生成的(当然你也可以不用,不过不用的话,这个框架很多引以为豪的特性你又用不到了),视图层还用了大量助手函数,如果 PM 说前端某某地方要改,那么前端改完静态页面给我,我后端还得再去一点一点的改,麻烦死了(什么?你让前端去学 yii 的视图层和模版引擎?我一个后端看都头疼,你还让他们去学)和前端耦合过重,难不成这框架都是给全栈工程师用的? PS :楼主有代码洁癖。
尤其是 yii 的一些自动生成页面和 bootstrap 以及 jquery ,在前后端分离的大趋势下我不知道这款框架还能流行多久?
最后还有一个我想说的就是他的目录摆放方式真的很乱啊,而且它可以自己配置各种子控制器,子操作,公共操作,公共控制器,各种风格的开发者用这个框架弄出各种乱七八糟的子模块子控制器子目录, 不知道看到这种项目你们觉得乱不乱反正我是觉得很乱。
以上为我对他的一些看法,当然这框架我也就学过一点,做过一些自己玩的小项目,还没做过大型项目的开发,所以期待有做过大项目的人能比较公正的谈谈对这个框架的看法。
1
huijiewei 2016-11-28 16:35:03 +08:00 via iPhone
非常好用
文档也很强大 文档不详细的地方看下源代码就好了 至于 gii 和 activeForm 不用就好咯 |
2
maijiawei 2016-11-28 16:35:04 +08:00
怎么有一种逛知乎的感觉~
|
3
Magician 2016-11-28 20:36:24 +08:00 via iPhone
不用 gii 就行了。
|
4
AbrahamGreyson 2016-11-29 01:30:34 +08:00 via iPhone
用过三两年, 再用 laravel 感觉易就是四个字可以描述,过度设计。
后来了解更多编程理论的东西,比如 martin fowler 的以及 ddd 的,知道了作者原来拥有很深的编程功力才写成那样。比如在 ar 中使用对象去表示查询条件,在 php 框架中这么做的并不多。 只不过这些并不适合绝大多数人。 |
5
changwei OP @AbrahamGreyson 在 ar 中使用对象去表示查询条件这个具体指的是什么呢? Laravel 的 ORM 难道不是这样吗?
@huijiewei 不用 gii 和 activeForm 的话,这个框架还有什么比其他框架更有特色的地方呢? |
6
huijiewei 2016-11-29 17:14:48 +08:00
@changwei DI (依赖注入), AR (活动记录),性能等等,特点太多了。
你要说 Laravel 和 Yii2 对比的话, Yii2 性能上胜利,版本更新上胜利。 你要说 TP 和 Yii2 对比的话,我回答不来! |
7
kimwang 2016-12-01 21:47:11 +08:00
|
8
changwei OP @kimwang 我看了这个网站的 html 源码,里面头像图片居然用的是 base64 ,差评。
还有它的功能比较通用而且界面都是默认的 bootstrap 主题样式,比如用户注册等地方猜测应该是 activeForm 直接生成。但是这种网站定制性扩展性怎么解决呢?比如说前端要改,要加各种交互特效,得在 php 的视图层面上大改。 |
9
kimwang 2016-12-02 13:27:46 +08:00
@changwei 现在用的人也不是特别多,我是见他确实比较简洁,管理比较方便,还有个根据他的程序改的,给你看看。
http://www.g2ex.com/ 跟 V2EX 差不,蛮有趣的,如果用这款程序搞个小社区您怎么看? |
10
flydogs 2017-01-10 08:40:06 +08:00
@changwei
头像 base64 是 google 的 pagespeed 插件的效果,小图片转成 base64 , css/js 合并 不用 pagespeed 的话,就是图片的图片 url 调用 |
11
terrywater 2017-05-19 14:40:33 +08:00
推荐款 Yii2 的开源电商系统 fecshop,github 地址: https://github.com/fancyecommerce/yii2_fecshop
|
12
kevn 2017-11-17 14:25:02 +08:00
4 楼说的过度设计有点意思,
其实 yii,laraval 等 php 框架都不是单纯的 php, php 仅是脚本语言,看 wordpress 的源码就会有一个直观的感受, 以上的那些框架其实都是 mvc 设计理念的具体实现,也使初学者能够快速入门并提高生产力,现在主流的 web 架构,无论什么语言都有 mvc 的影子。 要说会不会有人在生产环境使用这些框架,这是肯定的,但那都是些中小型的系统所使用的,按照这些框架开发系统,到时系统做大了,需要用其他语言重构也不会太过艰难的。 |
13
limuxia 2019-01-19 22:40:07 +08:00
最近项目用了 Yii2,忍不住来吐糟下:Yii2 框架非常好功能非常强大,但是视图层 widget 过家家一样简单用用生成个标签、表单还好,真实应用上为表现交互需要更多自定义用起来就是 TM 噩梦,折腾... 什么玩意,严重 delay 项目 -- 注意:我说的是 widget,但是上面仁兄有话说了不用 widget 你用 yii2 干嘛。。。
|