「我想用 PHP 打造一個屬於自己的框架。」
聽到這句話,任何具有常識的程式設計師,都會白你兩眼,然後鄙視似地告訴你:「睏矇睏,嘜眠夢啊」(台語:睡就睡,別在那做夢)。
他們會毫不猶豫地告訴你「重複造輪子」是多麼糟糕、多麼愚蠢的行為,並且拿出 CodeIgniter、Laravel、Phalcon 或 Yii 擺在你眼前,告訴你:「從現有的框架中選擇一個來用,然後忘掉你那可笑的妄想!」
在大部份情況下他們是正確的,但還是有些理由讓你可以打造一套屬於自己的框架:
因此,在未來的 30 天中,我將挑戰以 PHP 打造一個現代的 Web Framework。老實說我認為這相當地艱難,畢竟我將每日規畫訂立之後發現有許多玩意連自己都不太熟悉。
這是我報名「自我挑戰」組別的理由一:我不認為我能夠在不拖稿的前提下兼顧工作及研究,也不認為自己能在完整 30 天內完成這期的鐵人賽。
再者,這 30 天的挑戰主要是以 Symfony Framework Documention 的 Create your own PHP Framework 為基礎進行改寫。
這是我報名「自我挑戰」組別的理由二:為避免著作權爭議,在未另行說明的情況下,此挑戰賽系列文章的所有文字內容皆以 CC BY-SA 3.0 方式分享,且挑戰賽系列程式碼則以 MIT 授權釋出。
在此聲明,這系列挑戰賽文章客群並非初學者,如果你是剛接觸 PHP 不久的夥伴(僅管你可能精通某種技術或某些語言),我不建議你閱讀這系列的文章--無疑地這會打壞你學習 PHP 的胃口。
我希望這系列文章的閱讀者:
為了完成這系列文章的程式或工作流程,你可能還需要準備下列工具,我預設你已經安裝並學會如何使用它們的基礎指令:
如果有機會的話,本系列文章也會提到一些選用的工具及工作流程(就算不安裝也不影響正式內容,視讀者需要再安裝即可),在此預設你已經安裝或設定好他們:
聲明 1:在此選用 Google Cloud Platform 純粹為個人習慣與喜好,本篇挑戰賽並未收受 Google Inc. 或其它任何相關企業有形/無形贊助,讀者可利用 Amazon 等其它服務代替之
聲明 2:在此選用 Docker 純粹為營合市場需求,本篇挑戰賽並未收受 Docker Inc. 或其它任何相關企業有形/無形贊助,讀者可利用 Moby 開源容器軟體代替之
聲明 3:本系列挑戰賽目前未收受任何個人/法人贊助,未來將不再一一提及,若有意贊助本篇挑戰賽請 email 至 song374561@gmail.com,主旨請標明「2017 iThome 鐵人賽贊助提案」洽談
對於本次挑戰賽有任何想法、內容勘誤或疑問,都請各先進不吝指教。
可利用 email 與我聯絡,主旨煩請註明「2017 iThome 鐵人賽想法/勘誤/提問」以利後續回覆。