使用者管理系統,PHP專案開發銀彈?

極客思維發表於2015-03-11
銀彈,是針對狼人等超自然怪物的特效武器。後來也被比喻為具有極端有效性的解決方法,作為殺手鐗、最強殺招、王牌等的代稱。

作為一個在php開發崗位上小有幾年經驗的開發者,我的日常工作是從事基於TP框架的php專案開發。一直以來,我都執著於獨立自主開發,包括最基本的使用者管理和後臺管理系統。最困擾我的東西就是許可權管理、使用者的登陸註冊等等。每個專案的需求不一樣,所以我採用的方式就是修修改改,維護自己的使用者管理系統。然後應用到各種專案中。

直到有一天,我在OSC上看到一個新的開源專案——Open Center php使用者管理系統。讓我突然產生一種相見恨晚的感覺。

我為什麼會有這種感覺呢?

首先,OC是遵循Apache2.0開源協議的,也就是和TP一樣的協議。打消了我在版權方面的疑慮。

再者,它作為一款使用者管理系統,提供了較為完善的使用者註冊流程,包括多種註冊方式,如手機號註冊、郵箱註冊、使用者名稱註冊,同時還支援真實性驗證,可見開發團隊的誠意。

另外,它對使用者許可權管理方面所做的努力,也可見一斑,開發團隊稱繼承自OneThink,我也曾經在專案中使用OneThink,發現OC還是有很大不同之處的,它還加入了前臺許可權的管理。

為了給廣大tper一個參考,我特別拿OneThink和OC進行了一個比較。

1.開源協議
兩者都是基於Apache2.0的,沒什麼好比較的。

2.系統框架
兩者都是基於ThinkPHP的。不過OC基於OneThink,這一點讓我很疑惑。因為從表面上,很難看出來兩個系統的是同一個核心。不過研究之後,還是發現一些共同之處。OC有很濃重的OneThink基因。
前端方面,OC採用zui,算是一個比較大膽的嘗試(據我所知,zui就是bootstrap的一個改進版本,學習成本比較低),OneThink比較傳統,採用了bootstrap。

3.系統重點
OneThink著重於內容管理,從後臺的結構也可以看出來。導航欄中可以很醒目地看到內容管理的部分,內容管理部分的功能也已經初具雛形。
OC著重於使用者管理,所以後臺導航完全沒有內容管理的部分,比較有特色的是,導航部分把“模組”概念突出了,左側欄位專門放置模組,同時也支援模組的安裝解除安裝,這一點應該說是比較大的改進吧。
OC還有一個比較突出的特性,就是支援用Php構建後臺管理頁面,這對像我這樣的,沒有太多前端經驗的後端開發人員來說,是最大的吸引力。通過AdminBuilder類庫,可以純php來構建管理頁面。還有更牛的開發者自己改進了一套用於前臺的AdminBuilder。

  圖一、OC後臺區域性截圖


4.前臺功能
這方面,兩者均只提供了一個基礎的demo,OneThink提供了一個部落格形式的demo。而OC更加徹底,只提供了一個演示模組和一個演示首頁。不過OC的預設風格更加小清新,可能和採用zui框架作為前端有一定關係吧。
OneThink註冊登入方面,並沒有提供完整的流程。在這方面,OC做得可圈可點。多種形式的註冊登入、第三方登陸、同時還支援頭像的裁剪、擴充套件欄位,密碼修改等功能。值得一提的是,OC還提供了一種訊息機制,研究之後,發現是基於輪詢技術實現的,這裡,我覺得還有可改進的空間。不過基本都能滿足我的需求。

  圖二、資料修改介面



  圖三、訊息提醒選單


5.擴充套件
說到擴充套件,我覺得OneThink還是做得比較讚的,OneThink有比較多的開發者貢獻外掛,算是一個比較大的競爭優勢。而OC,因為剛出來,沒有這方面的支援,不過我試著把OneThink的外掛移植到OC上,發現還是比較好相容的,畢竟父子關係擺在那裡。
不過OC的官方也是比較努力的,提供了一些內建外掛,比如圖片水印,空間換膚等。值得一提的是,開發團隊改進了一些OneThink的第三方外掛之後仍然保留作者,比起某些所謂的“具有分享精神”的人高尚一點。

6.文件
文件這塊,我個人感覺OC還不具備和OneThink比較的能力。首先,OC的文件不夠齊全,這一點也算是OC的痛處吧。雖然開發團隊提供了一個離線文件,但還是很不詳細。比起OneThink還差很多。不過群裡面每天都有更新進度,也算是不錯的了。

7.開發者
其實這一項進行比較,對OC挺不公平的,畢竟一個年前才推出第一個版本,而OneThink已經發布有個把年頭了。不過個人覺得,OC作為一款使用者管理系統,還是大有可為的,畢竟不是每個開發人員都喜歡自己去開發維護一套使用者管理系統的,有一個現成可以用的專案會方便很多。

8.總結
通過對兩個開源專案的比較,不知道大家是不是瞭然了。從我個人的角度來說,不管黑貓白貓,能抓住老鼠就是好貓,看需求!

我個人的選擇建議:
1.如果你是做CMS類的專案,那麼首選OneThink,這個毫無疑問,畢竟OC,還沒有這方面的模組擴充套件,而從OneThink中再整合這個部分,可謂難度不小。
2.如果你是做一些需要使用者系統,並且使用者互動比較多的新專案,那麼選OC吧,OC的存在,無疑會讓你如虎添翼,節省下大量的開發時間。

期待
通過兩個開源專案的比較,很顯然,OC目前尚達不到銀彈的程度,但無疑也是給了開發者一個不錯的選擇。
留在本文最後,容我發表一下自己對OC未來發展的期望。模組化的系統構建理念不錯,如果OC的開發團隊能夠重視開發者,給開發者提供更多的支援,相信會有越來越多的php開發者採用OC,同時也希望用過OC的開發者能夠積極分享功能擴充套件,這樣OC才能夠越走越遠。

相關資料:

OneThink:專案主頁 www.onethink.cn 專案原始碼庫:http://git.oschina.net/liu21st/onethink
OpenCenter:專案主頁 www.ocenter.cn 線上演示 demo.ocenter.cn 專案原始碼庫:http://git.oschina.net/yhtt2020/OpenCenter
評論(3)

相關文章