cola php,ColaPHP2 0的一些想法

2021-10-25 21:30:30 字數 1457 閱讀 6301

colaphp第乙個版本0.1alpha是2023年7月發布的,到最新的版本1.3ga,三年多的時間,13個版本的發布,1.x系列差不多就這樣了,基本上不會有大的設計改變,後續如果發版本應該也只是bugfix之類。 很久以前就在設想colaphp2.0做些什麼,也曾經透露2.0只會支援php

colaphp第乙個版本0.1alpha是2023年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上。

回過頭來看colaphp的這13個版本,有一些設計現在覺得還不錯:

簡單:**簡單、流程簡單、結構簡單,最早的設計的初衷是不用文件也能開發,應該來說基本實現

微核心+擴充套件:基本上來說,所有的模組都可以定製,這點非常重要,隨便定製一下就能適應各種不同開發需求

僅需要為用到的特性買單:從不強迫消費

效能:約束大於配置

沒有改變原有的編碼方式

當然,也有一些設計非常不好的地方:

過份借鑑:colaphp在在設計之初,參考了大量的其他框架,包括但不限於zend framework/cakephp/codeigniter/django/thinkphp/qeephp,每個框架都有自己閃光設計,抄到了一些好的,也抄了一些不好的,從zend framework裡面吸收精華最多,糟粕也最多。

功能太多:提供了一些華而不實功能,其實貪多不爛,我們實際的專案中估計也只用到了其中40%左右的功能。

物件導向的遺毒:強制私有變數,然後通過set/get方法來操作,這是脫褲子放屁的事情,使用者想改還是能改,不如直接暴露,還可以節省**。

複雜**:儘管我一直在努努想把**寫的明了,但有的時候為了實現一些複雜的功能也引入了一些晦澀的**。

要解決上面的這些問題,修修補補不能徹底,所以準備在2.0大刀闊斧的改一下,結構方面不會有大的改變,主要是一些方法的實現,2.0不會100%相容1.x系列,但也不會是翻天覆地的改變,希望專案只用一上午就能把**公升級過來,主要的改進想法包括:

更簡單:**更簡單,開發更簡單,功能更明了,不會再遵守迂腐的物件導向開發(當然,所有的**還都是物件導向),如果乙個成員變數不是必須私有那就會是public,所有的操作程式設計師自己控制,省去get/set**

更直接:砍掉那些花哨的功能,只提供那些常用的功能,同樣的功能只會實現一次,原生php能滿足的,不再封裝,不太能用上的或者個別特殊的,框架會提供介面供擴充套件

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

更少:核心更少,**更少,學習成本更少

更方便:關心業務本身而不是框架

如果沒有什麼意外的話,2012.12.15前會發布colaphp 2.0α1

轉 A2W W2A T2A T2W 等巨集

如果你覺得使用 widechartomultibyte,multibytetowidechar 等函式比較麻煩 眾多的引數,緩衝區的分配與銷毀等。那麼可以使用 a2w w2a t2a t2w 等巨集來代替,它們對上面兩個函式進行了封裝。在使用這些巨集之前,應該包含標頭檔案 atlconv.h 並在呼...

2 基礎控制項2

transform 的預設值為 1,0,0,1,0,0 nslog nsstringfrom 可以列印其他型別的 比如類 affine transform a ffine transform 的初始化為 make make 只能改變一次 不可重複改變 如果想要重複改變 則使用去掉 make 的方法t...

什麼是P2P,O2O,B2B,B2C,C2C模式

最近網際網路行業各種to的模式搞得人暈頭轉向,我也是在這整理一下,防止在聽別人裝b的時候對答不流 p2p peer to peer 對等網路 可以簡單的定義成通過直接交換來共享計算機資源和服務,而對等計算模型應用層形成的網路通常稱為對等網路。在p2p網路環境中,成千上萬臺彼此連線的計算機都處於對等的...