搜尋
首頁php教程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个版本,有一些设计现在觉得还不错:

  1. 简单:代码简单、流程简单、结构简单,最早的设计的初衷是不用文档也能开发,应该来说基本实现
  2. 微内核+扩展:基本上来说,所有的模块都可以定制,这点非常重要,随便定制一下就能适应各种不同开发需求
  3. 仅需要为用到的特性买单:从不强迫消费
  4. 性能:http://t.cn/SbXXpO
  5. 约束大于配置
  6. 没有改变原有的编码方式

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

  1. 过份借鉴:ColaPHP在在设计之初,参考了大量的其他框架,包括但不限于Zend Framework/CakePHP/Codeigniter/django/thinkphp/qeephp,每个框架都有自己闪光设计,抄到了一些好的,也抄了一些不好的,从Zend Framework里面吸收精华最多,糟粕也最多。
  2. 功能太多:提供了一些华而不实功能,其实贪多不烂,我们实际的项目中估计也只用到了其中40%左右的功能。
  3. 面向对象的遗毒:强制私有变量,然后通过set/get方法来操作,这是脱裤子放屁的事情,用户想改还是能改,不如直接暴露,还可以节省代码。
  4. 一个函数多个用法:最典型的是config/reg方法,可以完成设置、取出、全部取出的功能,原谅我,那个时候钻了简单的牛角尖,也没有阅读《UNIX编程艺术》
  5. 复杂代码:尽管我一直在努努想把代码写的明了,但有的时候为了实现一些复杂的功能也引入了一些晦涩的代码。

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

  1. 更简单:代码更简单,开发更简单,功能更明了,不会再遵守迂腐的面向对象开发(当然,所有的代码还都是面向对象),如果一个成员变量不是必须私有那就会是public,所有的操作程序员自己控制,省去get/set代码
  2. 更直接:砍掉那些花哨的功能,只提供那些常用的功能,同样的功能只会实现一次,原生PHP能满足的,不再封装,不太能用上的或者个别特殊的,框架会提供接口供扩展
  3. 更高效:大家都喜欢高性能的框架
  4. 更少:核心更少,代码更少,学习成本更少
  5. 更方便:关心业务本身而不是框架

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

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SecLists

SecLists

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

Safe Exam Browser

Safe Exam Browser

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

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

mPDF

mPDF

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