FleaPHP和ThinkPHP的选择和比较

由于要做一系列的程序,需要一个良好的框架。于是一致扩充完善自己的小框架。最后快完成的时候放弃了。实际上,最好的方法是选择现成的框架。这样有了什么新技术或者新方法有人替你更新了。而且自己的新方法还可以直接作为扩展来添加进去。但是缺点是市面上的框架是面向各种用户的,所以速度上当然没有我们自己写的小框架快了。我自己写的MVC框架实现hello word只需0.000232934951782秒。

对于使用国产框架的来所,ThinkPHP和FleaPHP是艰难的选择。

两者从我个人的感觉上来对比如下:
FleaPHP成熟、快速、功能丰富。兼容PHP4和PHP5.但是官方开发下一代框架QeePHP而不再对FleaPHP进行开发了。在一些细节上不如ThinkPHP人性化。如url函数。在FleaPHP中url函数的前两个参数是 控制器,动作名 ,而ThinkPHP恰好相反,因为只输入动作名的情况很多。而且数据库的操作上这种参数的安排也是没有ThinkPHP人性化。FleaPHP对数据的操作很强大,今天看到居然可以操作中间表(这样就丧失了我自写框架和FleaPHP的CURD的区别了)。FleaPHP的文档和示例极少,学习成本大。但是一上手之后就很简单了。

ThinkPHP快速、借用了成熟的Java思想,但是实际使用呢过程中有些基本的CURD的关联操作居然存在错误。着实让我怀疑官方是否对其进行过测试。因为CURD的关联是我选择框架的主要原因。ThinkPHP基于PHP5,充分利用了PHP5的特性。让我十分喜欢的是ThinkPHP的数据验证和自动填充。但是这个也束缚了ThinkPHP导致不考虑添加自动统计字段等小功能,需要开发者自己来。ThinkPHP还有一个特性是从自动生成数据,但是这个却不支持关联。唉,ThinkPHP有着十分优秀的特性和思想,却有着很一般的应用实践体验。ThinkPHP的文档号称最丰富,事实也是这样,但是ThinkPHP的文档和示例却又太泛泛,比如表关联只介绍了其在model里面的定义,其他的CURD操作都没有提及。

说实话我不喜欢大廖这个人,因为老是放空炮,那个QeePHP居然从年初跳票到现在,更可气的是连进度都不告诉。但是FleaPHP却不错。唉。

很多情况都是很无奈的,选择一个框架也是。ThinkPHP和FleaPHP就像phpwind和discuz一样、就像联通和移动一样。

我的观点是,FleaPHP完善对数据的操作功能多,ThinkPHP灵活设计秉承简单的理念。如果你用php5并且不会钻运行时间的牛角尖的话就使用Thinkphp,如果使用PHP4就使用FleaPHP。如果太注重效率就使用FleaPHP。但是不要寄托任何希望在Qeephp,因为这个一年前就说要发布了……

如果你恨一个人,就让他去学PHP;如果这还不解恨,就把这两个框架给他……