程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> ColaPHP 2.0α發布

ColaPHP 2.0α發布

編輯:關於PHP編程

框架文件大小從188KB精簡到131KB,代碼量減少30%,基本功能沒有減少,主要歸功於將很多成員變量public化,大大減少了set/get方法,另外就是重構了一些代碼,尤其是一些以前有點看不下去又不能大改的代碼。   還有一個明顯的變化是把Com改到Ext,以前的想法是組件化(Component),有朋友反饋Com含義不明確容易誤解,我也自覺組件這個詞太大了,就改名Ext(擴展 Extension),簡單一點,核心+擴展。好的命名代碼完成了一半,當然有朋友覺得Ext也晦澀,目前感覺還好了。   和大家分享一些這次2.0開發中兩件有趣的事情:   1)返回值的問題   很久以前在twitter上說過想把所有的返回值都改成{‘code’ : 0, ‘data’ : xxx}這樣的,這次在開發的時候在猶豫要不要把所有的返回值都改成這樣。   PHP還不是一個完全面向對象的語言,至少不能像python那樣重載__bool__方法,這樣直接的結果,我不能直接判斷返回值,原來    if ($obj->foo($bar)) {  // do something  }  如果改返回數組,代碼要改成:     $result = $obj->foo($bar);  if (0 === $result['code']) {  // do something  }  不太喜歡,多了一行代碼,也不符合”懶惰”程序員的思維,會調整很多人的”神經”。   最近也很喜歡Go語言的錯誤處理方式,返回數據以及錯誤信息,所以ColaPHP返回值大多改造成還是返回操作值,失敗就返回false,但是多提供了一個error成員變量,方便快速獲取錯誤信息:     if ($obj->foo($bar)) {  // do something  } else {  var_dump($obj->error);  }  算是一個trade-off的方案吧,不過還是比較滿意。   2) 異常處理   ColaPHP 1.x版本挺喜歡拋異常的,一些影響流程的錯誤全部拋異常,簡單粗暴直接有效。在開發2.0的時候猶豫是不是要給使用者友好的錯誤信息,不想使用者一用到ColaPHP的代碼就try {} catch {}之類的,流程斷不斷,交給程序員自己控制(這也是ColaPHP的設計哲學之一)。   猶豫了許久,google了一些PHP處理異常方式方法的文章,看到Laruence的我們什麼時候應該使用異常?,權衡一下還是覺得直接拋比較好,相比try-catch,更難忍受充斥著if-else的代碼,兩害取其輕吧。   總的感覺,ColaPHP 2.0又回到了初見,原本簡單。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved