1. 程式人生 > >PHP搭建自己的web框架-前言

PHP搭建自己的web框架-前言

        目前使用PHP開發專案已經有幾年時間,雖然不是專職的PHPer,但在現在的公司,走過了PHP從入門到熟悉到熟練應用過程,一直在使用,不敢言專業,屬於應用PHPer。現在希望能很好地總結並分享一下自己PHP歷程和經驗,也希望看過文章的朋友能有所收穫。

        第一個接觸的PHP專案是上家公司使用日本的eccube開源程式,二次開發自己的網上商店。這是一個新專案,兩個人,有另一個新招的PHP開發同事帶著。在看了PHP基本入門文件後,主要是看eccube原始碼,同時也開始真正學習並應用前端html/js/css技術。eccube原始碼還是很認真地去看的,基本上看懂了其互動及後臺邏輯,後臺的二次開發基本上沒有問題。現在看來,eccube屬於對入門者比較正規的PHP開源程式:結構上從入口到邏輯處理,到資料庫操作,到smarty模板,使用PHP基本的語法,一路F3下來思路很清晰;沒有用到在大部份PHP框架上使用的雖然靈活,但不利於效能、可讀性、可開發維護的如魔術方式,自動載入,ORM

等特性或功能。我深受eccube影響,以至於後來(特別是剛開始)自己搭建專案時參考了很多eccube的實現和做法。

        有時我在想,如果一開始是做thinkPHP,Yii,zend等框架的開發,那對PHP的深入學習、各種特性的使用和對通用框架的熟悉,會不會使自己更加專業?

        雖然當時非常想做JAVA開發,想做雲端計算,但是雲端計算不是某種語言的專利,也不是某種語言搭建起來的。

        11年的時候雲端計算在國內開始熱起來,部門就承擔著公司雲端計算方向上的探索和研究。我是雲端計算部門的第一位做技術開發的吧,人員是後續慢慢才到齊。當時部門還直接由院長直接領導,所以直接就跟院長溝通交流,聽取他的設想、規劃和指導,有點小激動。院長看好了應用超市在企業中的應用這個方向,把服務碎片化,應用碎片化,具有服務釋出,訂購等功能。雖然只我一個人,肯定不能閒著,那就探索唄,做一個原型出來。對一個只做過軟體模組化開發的人,開發一個系統,感覺力不足,還好是支援使用開源的系統。

        經過一番查詢,最後還是回到先前用過的eccube,網店的模式就具有釋出、展示、訂購、管理功能,已經不管它是PHP開發的了,關鍵是,熟悉。主要改的有釋出功能,把釋出產品改成釋出應用,增加應用的地址、開啟時展示的長寬畫素等引數;在我的訂單裡,把列出訂單改成列出應用,並可以點選啟動應用,在一個窗口裡開啟應用就可以使用了。最後在網上找了好多的網頁應用、flesh遊戲和應用上架到應用超市中,原型就出來了。之後又跟新來的一位同事一起,基於EXTJS做了應用桌面(類似於WEB QQ)。也是用了PHP語言,同時把HTML/JS/CSS進一步學習熟悉了起來,在網頁桌面上的JS互動,很能鍛鍊人,遇到後來可能都不會遇到的問題,現在回想應該大部分都解決了,解決不了的都換方案了。順便要提一下的,當時我們就實現了在一個公共平臺裡,可以整合公共的應用,由開發者提供;也可以整合企業自己的應用,企業管理員把企業的應用上架,設定一些許可權等,就可通過WEB桌面統一面向員工提供服務(後來說的模式,佔領流量入口),因此對其中的技術和系統寫了專利。後來的很多平臺有類似的模式,包括微信企業號。

       經過這兩個專案,對PHP總算入門了,也結下了緣子了,以後的很多專案都還是使用PHP語言開發(雖然我們部門開發的都不是PHP出身的,但語言是相通的嘛)。在這個過程中,或深或淺地研究過很多PHP開源專案,體驗過各種各樣的風格,因為它們基本上都沒有使用通用PHP框架;而通用框架除了ThinkPHP,其它實踐還比較少,主要看一下介紹和實現的原理。所以在學習研究時,根據自己的經驗和喜好,吸取和總結出自己的架構,應用於專案當中。我本來是java出身,在之前的公司基本一直做java開發,所以在開發PHP時,有些思想還是有些受java的影響。

       上面的兩個專案最終怎樣啦?呃,只能告訴你,早已經成為歷史。看看WEBQQ結局和微信企業號現在的狀態,也會成為歷史吧。