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
原文地址:ColaPHP2.0的一些想法, 感谢原作者分享。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),