cola php,ColaPHP2.0的一些想法

ColaPHP第一个版本0.1alpha是2009年7月发布的,到最新的版本1.3ga,三年多的时间,13个版本的发布,1.x系列差不多就这样了,基本上不会有大的设计改变,后续如果发版本应该也只是bugfix之类。 很久以前就在设想ColaPHP2.0做些什么,也曾经透露2.0只会支持PHP

ColaPHP第一个版本0.1alpha是2009年7月发布的,到最新的版本1.3ga,三年多的时间,13个版本的发布,1.x系列差不多就这样了,基本上不会有大的设计改变,后续如果发版本应该也只是bugfix之类。

很久以前就在设想ColaPHP2.0做些什么,也曾经透露2.0只会支持PHP5.4+,好吧,我失言了,至少目前我看不出有什么东西是ColaPHP2.0一定要做,而PHP5.2+实现不了,所以ColaPHP2.0还是支持PHP5.2+,当然PHP5.4会支持的最好,因为我最近的开发都在PHP5.4上。

计划中ColaPHP2.0不会这么早启动,收听我微博(@fuchaoqun)的人会发现我最近一年对PHP这种多进程(或者多进程+多线程)同步阻塞的请求模型抱怨甚多,至少在我们的项目上,nginx+php-fpm 502的错误就像冤魂一样挥之不去,最近也在研究一些其他的并发模型,比如ngx+lua这样的搭配,简单的业务应用非常高效(我们某个实际线上应用最佳RPS可以到8w+),但是配套的开发不是特别方便,适合简单高并发的应用;nodejs生态要成熟许多,国内国外不断有成熟的案例,是一个值得关注的方向;python里面的tornado我也非常喜欢,不过tornado的生态更恶劣,很多资源的请求都没有异步扩展包,有的也大多开发不活跃。相比较来说,web开发这块,PHP的生态最好,这些机缘加速了ColaPHP2.0的开发启动。

回过头来看ColaPHP的这13个版本,有一些设计现在觉得还不错:

简单:代码简单、流程简单、结构简单,最早的设计的初衷是不用文档也能开发,应该来说基本实现

微内核+扩展:基本上来说,所有的模块都可以定制,这点非常重要,随便定制一下就能适应各种不同开发需求

仅需要为用到的特性买单:从不强迫消费

性能:http://t.cn/SbXXpO

约束大于配置

没有改变原有的编码方式

当然,也有一些设计非常不好的地方:

过份借鉴:ColaPHP在在设计之初,参考了大量的其他框架,包括但不限于Zend Framework/CakePHP/Codeigniter/django/thinkphp/qeephp,每个框架都有自己闪光设计,抄到了一些好的,也抄了一些不好的,从Zend Framework里面吸收精华最多,糟粕也最多。

功能太多:提供了一些华而不实功能,其实贪多不烂,我们实际的项目中估计也只用到了其中40%左右的功能。

面向对象的遗毒:强制私有变量,然后通过set/get方法来操作,这是脱裤子放屁的事情,用户想改还是能改,不如直接暴露,还可以节省代码。

一个函数多个用法:最典型的是config/reg方法,可以完成设置、取出、全部取出的功能,原谅我,那个时候钻了简单的牛角尖,也没有阅读《UNIX编程艺术》

复杂代码:尽管我一直在努努想把代码写的明了,但有的时候为了实现一些复杂的功能也引入了一些晦涩的代码。

要解决上面的这些问题,修修补补不能彻底,所以准备在2.0大刀阔斧的改一下,结构方面不会有大的改变,主要是一些方法的实现,2.0不会100%兼容1.x系列,但也不会是翻天覆地的改变,希望项目只用一上午就能把代码升级过来,主要的改进想法包括:

更简单:代码更简单,开发更简单,功能更明了,不会再遵守迂腐的面向对象开发(当然,所有的代码还都是面向对象),如果一个成员变量不是必须私有那就会是public,所有的操作程序员自己控制,省去get/set代码

更直接:砍掉那些花哨的功能,只提供那些常用的功能,同样的功能只会实现一次,原生PHP能满足的,不再封装,不太能用上的或者个别特殊的,框架会提供接口供扩展

更高效:大家都喜欢高性能的框架

更少:核心更少,代码更少,学习成本更少

更方便:关心业务本身而不是框架

如果没有什么意外的话,2012.12.15前会发布ColaPHP 2.0α1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值