完全不要用YII框架吧,这就是个垃圾。
最近因为工作关系,因效率问题 被逼花3天时间写了个类似Thinkphp3.2的YuYan框架,速度是Thinkphp3.2的5倍(运用到了以前2个现成DB类)。另花7天时间,也就是10号到现在。根据新框架写了个自动生成代码的系统。同时,听说YII框架不错。于是今天花1天打算来学习这个框架。
学习了半天,终于搞懂了。一整天,大概至少花了3个小时吧。期间家里忙这忙哪的。有个小宝宝整天缠在身上乱打键盘。
结论:也是我半夜不睡觉(其实我很累了)这个文章的目的,告诉大家,这框架,完全是个垃圾,千万不要使用。我是负责任告诉大家。如果你坚持要使用,结果就是代码难以维护和开发。整体框架决定了,这代码的水平,至多也就是个编程经验一年左右的水平。比90%软件公司的编程水平还差。
用事实说话:
1、变量命名&&文件命名:他是C++和Java的混合体。文件命名。就只有名字,功能和属性都没有体现:比如例子post的model类。就是post.php.正确命名就是:PostModel.class.php.可见差很远。这根本不是习惯问题,而极严重的编程思想问题。从这可以看出作者超级弱智。
2、Model操作&&数据库操作:条件和执行语句混合,亲,这和原生SQL语句有何区别?现在新的思想是条件和执行分离。思路清晰而代码极为简单。想一个函数就执行完DB操作,亲,用mysql_query更简单。
3、自动生成登录不连接数据库也就算了。还要另继承个验证类。亲。框架的目的是更简单,不是更复杂这不是比原生要复杂2倍以上么?本末倒置的弱智。
4、没有html标签,前端html view代码都是php.亲,view都是php了。前端分得开么?不如单独写一个php更好了。
把原本非常简单的html代码都变成php了。 本末倒置的弱智。
5、再说自动生成代码吧:为什么需要手工这么多次?model,controler全部一次不就够了么?生成的代码也是些极垃圾臭代码。
6、再说文件包含。亲,现在项目是单入口?还需要在其它程序里载入这么多文件么,还用写这么命名空间和文件路径么?你以为回到了C语言时代和Java时代。还需要SB载入么?完全不需要,项目可以全部自动识别载入(我的项目中全部做到)。
7、生成代码,里面的东西,几乎都是新东西(作者与众不同的思想)。都是要学习,亲,你写框架的目的就是为了害人,增加别人负担么?我们写框架的目的就是希望傻瓜都可以看懂我们程序,环境好后傻瓜都会在10分钟内写项目代码。
8、帮助文件:完整的帮助文件都没有。比如chm格式文件。官方中文社区几年没有人维护(仔细看内容),唯一的视频代码模糊不清。根本看不清楚。支持何在?
9、一个框架编程,指导还要写一本书么?我写的框架。比Thinkphp强大,更简单,傻瓜都只10分钟上手。1小时完全精通。Thinkphp环境搭建好后,对照手册编程,也只需要学习1个小时足矣吧。你要别人看一本书,是想折磨死苦逼的程序猿么?
10、类里方法编程:里面到处是get,set,这是典型的10几年前的Java垃圾无用 废代码。在10多年前,我就很恨这样代码。据说是为了安全。我10多年前写Java程序时,就写了很多这样垃圾代码,又经过10多年的苦修。我终于敢光明正大的说。Struts,你就是个垃圾。set/get属性方法就是个垃圾。最好的证明就是现在php的set/get方法。完全自动化。可以避免java里的set/get垃圾无用代码。YII作者薛强先生,编程小白。你编写过C++(命名风格)+Java.咋这还这么多垃圾无用代码呢,生命需要珍惜时间。
半夜了,要休息了。.
生命需要珍惜时间。我花这么多时间,就是为了用事实 告诉大家。千万不要用YII这个垃圾框架。如果你没有框架用,可以用Thinkphp3.1.,3.2,不过thinkphp3.2在 liunx下部署是有严重问题的。我用ThinkPHP 开发过5个项目。
我的框架也会开源,不过时间还不到一个月。现在只是内部项目使用,开源大概要2个月以后。
本人编程10多年,编程经验在30万行代码以上。编程语言用过一年以上的有C/C++,VC.Java,jsp.vb.net C#,php.这说明我是有资格来评论和下结论的。虽然PHP编程经验只有一年。PHP比.net和Java强二个等级左右。