forecho

把生命浪费在美好的事物上

我为什么热爱 Yii

2013年11月17日

去年开始接触的 Yii,感谢上个公司,给了我这个机会。

刚开始接触Yii 的时候,头很大,不知道怎么看,之前也有用 CodeIgniter 框架的经验,但是还是不知道怎么入手这个框架,因为你按照他的教程来安装一个 webapp 只需要一条命令就可以了,对,就是一条命令,然后基本的该有的都有了,然后我就开始傻眼了,因为我不知道我该改什么代码了。

CodeIgniter入门很简单,功能也很简单,你把框架文件丢进项目里面,改怎么写还是要怎么写,要自己写表单验证,自己写验证码,自己写分页等等(可能是这样的,太久没用CodeIgniter 了,有些东西可能记不太清楚了)。有人说 CodeIgniter 是一个 PHP 的类,我觉得这也不为过。这个框架只是简化你对 PHP 的写法。至于 MVC 应该怎么写,应该怎么命名是可以很随意的,对于入门PHP 没多久的我来说,是一件很头疼的事,始终不知道这个是写在 M 里面还是要写在 C 里面。

但是 Yii 就不一样了,Gii 功能非常强大,每一个表都可以生成「一套 MVC 文件」,代码都给你生成了,结构很清晰,给你定制了一个很好的标准,你只需要参照这个标准开发就好了,非常棒。Yii 的强大之处在于他的组建,分页?验证码?表单验证?该有的它都有了,你直接调用非常的简单,让你开发项目的时候更注重业务逻辑的处理,而不是把大把的时间都浪费在调试该死的表单验证,该死的验证码,这点在我最近用 CakePHP 是深有体会(我目前这个项目是 CakePHP 开发的,我是半路插进来的,对 CakePHP 也是刚了解,但是这个项目的分页没有用框架的,表单验证也没有用框架的,好像连验证码都是自己写的?后期改起来非常的蛋疼!并且如果没有用框架的自带的话,代码是很多的,为了赶项目这个方式是非常不可取的)。

Yii 框架继承了 ROR 的 ActiveRecord 所以操作数据库起来也是非常简单有效的,但是有人就说效率不行,我想说的是在中国互联网产品的环境下,大家的产品都是你抄我、我抄你的情况下,一个项目刚开始就别跟我谈程序执行效率了,快速的赶上你的竞品的功能,让开发人员少加班才是最实在的。我现在算是明白了为什么大家很热爱 Ruby 了。

前提是入门可能没有 CodeIgniter那么简单,但是也没你想象的那么难。下面摘录来一段来自 yiichina 对 yii 的介绍:

Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架。 Yii是一个基于组件、用于开发大型 Web 应用的 高性能 PHP 框架。Yii 几乎拥有了 所有的特性 ,包括 MVC、DAO/ActiveRecord、I18N/L10N、caching、基于 JQuery 的 AJAX 支持、用户认证和基于角色的访问控制、脚手架、输入验证、部件、事件、主题化以及 Web 服务等等。Yii 采用严格的 OOP 编写,Yii 使用简单,非常灵活,具有很好的可扩展性。

以上是我加了半个月班,每天11点回家的一点吐槽。我上面说的话都是错的,但你最好能证明我是对的。

Comments

开飞机的小蜗牛: CI 很简单易用。其他的框架没接触过。尝试着看过一次 laravel ,搞不懂是怎么一回事。

ForEcho: CI 是很简单,但是很多东西都要自己写。我不认为那是一个框架。建议你学习Yii。