雜談:扯一些phal Api的前世和今生

此篇章與框架技術(shù)無關(guān),為課外讀物,感興趣的可以略讀一下。

5.2.1 寫在前面的話

記得曾經(jīng)有一位大主教在自己的墓志銘上寫道:

“小時(shí)候,我發(fā)誓要改變整個(gè)世界;

大些了,我努力改變我的祖國;

后來,我想我能改變我居住的這個(gè)城市;

直到臨死之前才發(fā)現(xiàn),我只能改變自己,從而影響他人,乃至影響整個(gè)世界”。

當(dāng)然,我沒有想過要去影響整個(gè)世界,我只想盡我自己的所學(xué),為自己,為他人做一些有用的事情。

正如,最近在thephp.cc站點(diǎn)上面看到的這樣一張PPT:

我不一定能記住這位國際出名的前輩的名字,但我記住了他的這句話:

Driven by his passion tohelpdevelopersbuildbetter software.

5.2.2 然而,要布道,先要踐道。

所以,當(dāng)我希望把PhalApi框架開源出去時(shí),我這個(gè)框架應(yīng)該是初步完善并可以應(yīng)用于實(shí)際項(xiàng)目開發(fā)的,至少我已經(jīng)切身用過它來進(jìn)行后臺(tái)接口項(xiàng)目開發(fā)并不斷優(yōu)化重構(gòu)之。

5.2.3 最初框架源于畢業(yè)論文的需要

當(dāng)年,在進(jìn)行畢業(yè)論文的項(xiàng)目開發(fā)時(shí),因?yàn)樾枰玫胶笈_(tái)接口。于是乎,便到圖書館和網(wǎng)上查閱整理了很多資料,知識理論包括RESTFull、phprpc、SOAP協(xié)議、Aamzon接口服務(wù)、WSDL、Web Service等等。

然而,在實(shí)際中我卻發(fā)現(xiàn)很多人在用PHP開發(fā)接口是很簡單的,或者說是很粗爆的,如直接使用fopen()函數(shù)進(jìn)行獲取接口結(jié)果。并且,當(dāng)我需要去尋找一個(gè)可以進(jìn)行后臺(tái)接口開發(fā)的框架時(shí),居然沒找到很好框架支持。基于此,最初的接口框架就在這樣的背景和研究下出來了。

附一下當(dāng)前畢業(yè)論文的相關(guān)資料:

PhalApi前世: 畢業(yè)論文答辯匯報(bào) - 精簡版.ppt

PhalApiu前世:畢業(yè)論文 - 暗夜在火星 - 修改版.pdf

PhalApi前世文檔:zenWS3完全開發(fā)手冊 - 初稿 - 20130317.pdf

可以在附件下載上面的資料。

5.2.4 最初框架的首次商用和實(shí)站

在畢業(yè)后就職的第一家公司中,由于也有接口開發(fā)的需要,正好是管理后臺(tái) 內(nèi)部系統(tǒng)調(diào)用,所以在征得領(lǐng)導(dǎo)同意后,我將我畢業(yè)論文所研發(fā)的接口框架進(jìn)行了部署和開發(fā)。首次投入了商業(yè)用途。^_^

并同時(shí)整理出了初步的接口框架,也就是PhalApi的前世。

5.2.5 PhalApi的前世

最初的框架命名是:zenphpWS3。

原因是zen表示開源、php表示用PHP開發(fā)、WS表示W(wǎng)eb Service、3表示支持SOAP/HTTP/RPC三種協(xié)議以及JSON/XML/ARRAY等多種格式的返回。

更多可以訪問我之前的博客:zenphpWS3:文檔&示例&設(shè)計(jì)&源碼

5.2.6 又一年的全職接口開發(fā)和開源框架學(xué)習(xí)

曾經(jīng)有一年,我負(fù)責(zé)某個(gè)大型游戲項(xiàng)目的后臺(tái)接口開發(fā),同時(shí)提供接口供安卓版、iOS版和PC使用,對后臺(tái)接口的開發(fā)有了更多的實(shí)戰(zhàn)經(jīng)驗(yàn)。

并且,在對很多國外優(yōu)秀的開源框架的學(xué)習(xí)和研究后,有了很多的領(lǐng)會(huì),如我個(gè)人最為推薦的Phalcon。Phalcon不僅僅在框架方面做得非常優(yōu)秀,在文檔編寫方面也是不遺余力的,即使我們不用這個(gè)框架,也能從這個(gè)框架的文檔上吸引很多有用的思想。

才發(fā)現(xiàn)最初提供的接口框架還有很多不成熟的地方。。。

5.2.7 PhalApi框架開源的前奏

到后來,在越來越多項(xiàng)目開發(fā)的需要下,出于仍然沒有很好的接口框架支持(這里補(bǔ)充說明一下:一搜索“php接口開發(fā)框架”沒有好的結(jié)果;二所接觸到的框架雖然有支持接口開發(fā),但只是其中一部分)。更為重要的是,項(xiàng)目往往又是如此重要,很擔(dān)憂所選的框架進(jìn)行接口開發(fā)后遇到問題不知如果在底層修正。

所以,還是用回了自己的接口開發(fā)框架。

當(dāng)然,在做項(xiàng)目接口開發(fā)的同時(shí),我也有意識地在對接口框架進(jìn)行完善和重構(gòu),并融入框架所需要的特性、原則和模式。如可重用、IoC、5條設(shè)計(jì)原則、組件等。

至此,PhalApi接口框架也就慢慢地明朗了。接下來就是:

5.2.8 PhalApi正式走向開源

如今,很多大的企業(yè)都提供了開放平臺(tái),如騰訊開放平臺(tái)、新浪微博開放平臺(tái)、優(yōu)酷開放平臺(tái)等。與此相比,雖然小應(yīng)用輕量級App項(xiàng)目的后臺(tái)接口沒有這么大的規(guī)模,但也是很有量級上的需求的,正如下面這張圖所展示的。

在此大背景下,顯然會(huì)有更多的應(yīng)用需要后臺(tái)接口的支撐,需要進(jìn)行后臺(tái)接口的開發(fā),乃至對海量數(shù)據(jù)和訪問的支持、快速擴(kuò)容升級、一鍵發(fā)布、多端支持等。即使這樣,PHP開發(fā)人員在接口開發(fā)時(shí),仍然會(huì)顯得有點(diǎn)“隨心所欲”,缺少規(guī)范和統(tǒng)一,更為重要的是仍然沒有發(fā)現(xiàn)好的PHP接口開發(fā)框架。

古云此日足可惜,吾輩更應(yīng)惜秒陰。

所以,此框架通過我多個(gè)實(shí)際項(xiàng)目應(yīng)用后,在不斷整理重構(gòu)、精益迭代下走向了開源。^_^

希望對你們有所幫助,謝謝。

我們通過這個(gè)框架,希望可以(正如文檔里面所說的):

一來,支撐輕量級項(xiàng)目后臺(tái)接口的快速開發(fā);

二來,闡明如何進(jìn)行接口開發(fā)、設(shè)計(jì)和維護(hù),以很好支持海量訪問、大數(shù)據(jù)、向前向后兼容等;

三來,順便分享一些好的思想、技巧和有用的工具、最佳實(shí)踐。

其中,第一點(diǎn)是直接的也是最表面的,即你通過這個(gè)接口框架就可以快速開發(fā)了;第二點(diǎn)是更通用的接口開發(fā)中的一些好的或者必要的技術(shù)支撐和策略;第三點(diǎn)是面向框架級別的,即使你不用這個(gè)接口框架,也可以設(shè)計(jì)研發(fā)自己的開發(fā)框架,同時(shí)也是突破接口開發(fā)、超越PHP語言的。

書不盡言,歡迎多交流,再次謝謝!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,366評論 25 708
  • 充滿治愈的能量 ▼ 這是目前我所見過最具治愈能量的國民繪本 擺脫歐洲的嚴(yán)謹(jǐn)敘事風(fēng)格,不同于日本的敘事手法 只是封面...
    咿啦看書閱讀 1,056評論 0 0
  • 如題,千萬
    chy1ee閱讀 428評論 3 0
  • 今天講的內(nèi)容些許有點(diǎn)多,下課后頭有點(diǎn)痛痛的。下午有些疲勞,一不注意就會(huì)走神,然后就錯(cuò)過了什么。。在整理筆記上花的時(shí)...
    yumi28閱讀 169評論 1 0
  • 一 昨日在一本雜志上看到兩個(gè)熟悉的名字,一個(gè)是03級的一位師兄,一畢業(yè)就去東莞參與一份都市報(bào)的創(chuàng)辦;一個(gè) 是04級...
    gavinyangyang閱讀 385評論 0 1

友情鏈接更多精彩內(nèi)容