V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
changwei
V2EX  ›  编程

YII 这个框架究竟好在哪啊?

  •  
  •   changwei · 2016-07-28 23:56:41 +08:00 · 7732 次点击
    这是一个创建于 3040 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主之前一直用的 thinkphp 开发,听说 yii 这款框架不错,所以半个月前去学了学。

    最近快把 YII 学完了,也有一些感悟,我个人感觉就像一个精装修房屋一样本身耦合了太多前端方面的东西,而且一个 PHP 框架本身做了太多前端方面的事情,如果我的项目是需要高度定制化前端视图,那么 YII 的很多地方就需要重写,并且 gii 这种东西也几乎没有用武之地了。如果我的登录机制需要改变(比如说绑定手机号登录注册,那么他的自带的授权和身份验证机制基本上又用不上了),也很难利用到它自带的那些“精装修”了。

    总的来讲,开发一般应用,除了视图层的用户自定义 widget 和一些内置的小部件以外, yii 并没有给我带来多大惊喜

    而且这个框架由于本身自带了太多特性导致学习成本高了许多,比如说数据库迁移,比如说 gii ,比如说 mixin 等等,也有可能是我目前的项目规模还不够大,可重用和需要解耦的地方不够多,所以无法感觉到这些特性给我带来的便利。

    YII 的 ORM 活动记录,事件机制,模块独立我看在 thinkphp 中分别也有对应的体现啊( thinkphp 中叫做 CDB 机制,不知道这个机制是不是抄袭YII的),而且在laraval等框架中,这些东西也有一个别名叫做容器或者中间件,所以说这些不能算 yii 特有的优势把。所以看不懂知乎等地为什么很多人总喜欢用 yii 之类的框架来黑 thinkphp 呢?

    14 条回复    2016-08-03 17:53:03 +08:00
    abelyao
        1
    abelyao  
       2016-07-29 01:05:05 +08:00
    作为曾经给 ThinkPHP 社区写过几个插件的想说说…
    为什么黑 ThinkPHP 呢,可能是跟社区的封闭式管理有关,几年前亲眼所见一篇报告安全漏洞的帖子被删掉,从此对 ThinkPHP 无感。除此之外估计就是代码写得也不咋滴吧,功能虽然是有了,但……

    抛弃 ThinkPHP 之后,看到了很多地方推荐 YII 和 Laraval ,但经过几个项目对比,最终觉得 CodeIgniter 3 最上手,如果是超级轻量级的项目,则首选 Slim 或 Flight ,这些都是很不错的框架,就看项目的性质来选择了,把 CI 最为主力纯粹是因为很上手。

    最后想说, ThinkPHP 作为新手入门框架还是不错的,包括在理解 MVC 概念上,加上中文文档齐全,也不能一概而“黑”吧
    abelyao
        2
    abelyao  
       2016-07-29 01:08:29 +08:00   ❤️ 1
    另外想建议,任何程序员,不要死磕一个框架,甚至不要死磕一门语言。
    不同语言,不同框架,不同思路,交互使用,思路也可以更开阔一些。
    ovear
        3
    ovear  
       2016-07-29 01:53:04 +08:00
    同样的问题出现在 laravel 身上。。我尝试用了很多次,就是没感觉到 laravel 有多优雅。。
    可能内置了一堆脚手架就是特点吧。。然而我并不能用上。。
    66beta
        4
    66beta  
       2016-07-29 08:20:33 +08:00
    CI 2 最容易上手, CI 3.0 跟 laravel 差不多了,为何不直接 laravel 呢,社区更活跃,资源更丰富
    嫌大,可以用 lumen
    likezun
        5
    likezun  
       2016-07-29 08:35:36 +08:00
    表示 php 框架教父 —— symfony , 引领时尚,潮流,规范,藐视一切 :)
    iloveyou
        6
    iloveyou  
       2016-07-29 08:36:06 +08:00
    yii 适合全栈,快速搭建项目
    likezun
        7
    likezun  
       2016-07-29 08:39:05 +08:00
    当你认为自己可以更进一步时, 可以学习 symfony ! 不一样的世界观
    strwei
        8
    strwei  
       2016-07-29 09:09:36 +08:00 via iPhone
    yii 同 laravel 一样,太过笨重,太多的冗余代码,有的你用不到
    zhujinliang
        9
    zhujinliang  
       2016-07-29 09:13:10 +08:00 via iPhone
    yii 的文档很好,有哪些类哪些方法一清二楚
    CTO
        10
    CTO  
       2016-07-29 09:24:32 +08:00
    用过一年 TP 现在一直在用 yii1 yii2 搭建项目 不吹不黑 我感觉 yii 6 的飞起
    young
        11
    young  
       2016-07-29 10:00:23 +08:00
    lz 思维有问题, 你要是这么想:
    这个框架, 我想定制前端怎么办?
    gii 不能自定义吗?
    这么多特性有什么用呢? 为啥会有这些特性? 跟其他框架类似的特性有什么区别呢?

    等搞明白了, thinkphp 估计你自己都要嫌弃了
    huijiewei
        12
    huijiewei  
       2016-07-29 10:05:50 +08:00
    解耦。。。。。

    大部分模块想怎么换就怎么换
    changwei
        13
    changwei  
    OP
       2016-07-29 21:47:14 +08:00
    @abelyao Thinkphp 的社区我觉得不算是槽点把,社区里面人还是挺多的,各种开源小项目分享还是不错的,就是有很多广告党很烦。其次就是我看知乎上面很多人黑 Thinkphp 无非就是单字母函数,控制器 return 的不是渲染之后的视图等等问题,我个人觉得这些都不算是太严重的黑点把。关于微型框架我最近也在研究,我目前开发项目比较需要的就是带路由,有事件机制,现成的缓存和数据库模块,其他功能的可有可无,你有好的推荐吗?

    @ovear 我在知乎上也看了很多对于 laraval 的评价,好像大部分人对于优雅的评价集中在 laraval 的路由机制上
    @likezun symfony 为什么我在国内好几个招聘网站发现对于这种框架的需求比较少呢?

    @zhujinliang 中文文档没翻译完全啊,楼主英语比较渣,虽然也能看懂,但是阅读速度很慢
    @CTO 你觉得 YII 比你之前用的 tp 6 在哪?

    @huijiewei 如果仅仅是为了解耦和抛弃本身自带的那么多模块,那么干脆用微型框架咯
    @young 不好意思我目前还真没看出来 yii 的 gii 有啥用,自定义的话,那么比我手写代码也快不了多少吧,另外 yii 的事件, mixin ,在最新的 Thinkphp5.0 都有体现,而且我没觉得这些特性比其他框架牛在哪,依赖注入倒是还不错,不过我开发的中小型项目的类都非常简洁功能不是很复杂,很少需要多个类互相嵌套调用
    huijiewei
        14
    huijiewei  
       2016-08-03 17:53:03 +08:00
    @changwei 无所谓啦,自己用 composer 搭个框架用也没人拦着啊。

    Yii2 关键是已经给了你一些比较好的组件实现了啊,不喜欢哪个部分直接换一个就是啦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1654 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:51 · PVG 00:51 · LAX 08:51 · JFK 11:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.