烈火建站學院文檔 如果你有時間和技術編寫自己的內容管理系統,那這可能是最好的選擇。我們現在一步步的教你建立自己的php內容管理系統(CMS)。
Peter Zeidman 翻譯:Mint Li
如果你想要建立一個網站,那麼你或許想要一套內容管理系統(CMS)棗一個使你的網站文章一目了然的工具。我在以前的文章中很少提到這些,但是許多的商業網站只有一個選擇:那就是編寫適合自己的一套系統。
為什麼呢?好像自己編寫的系統缺乏穩定性。恰恰相反,成百上千的人編寫的系統,在成千上萬的網站上成功的運行。但是一旦出了問題,你想找出問題出在那裡將非常困難。如果你想自己定制或者修改的話,更將面臨巨大的代碼和模糊不清的文檔的困擾。
自己編寫CMS,在另一方面來將,會找到最適合自己需求的解決方案,最適合你的用戶的需求,找出自己開發團隊的問題所在。如果你有時間和精力自己編寫的話,這是最好的選擇。這就是為什麼我反復提到的。
我們將使用php來編寫,因為它是非常優秀的基於網絡的開發語言。還將使用Mysql做為後台數據庫,同時系統還將支持其他的數據庫,比如PostgreSQL和SQLServer等。
那麼我們的系統將能做什麼呢?首先最重要的一點,能允許大量網站上的內容方便的收藏進自己的數據庫中。當然一個成功的站點還包括許多其它重要特征,比如用戶認證和文件管理等。
規劃你的CMS
首先,我們要規劃好我們的系統需要實現一些什麼功能。在以後的文章中,我將用實例來說明一些使你的系統更完善的主要工具和組件。
第一步你需要編寫一個你的CMS的基本需求,很顯然,這需要根據你的需要來。
內容管理:系統最主要的功能,必須在數據庫中保存象文檔和新聞這樣的內容,然後顯示用戶發出的請求。方便的編輯,添加刪除修改的界面。
用戶認證:我們可能想讓限制某些站點對我們的訪問,顯然需要有管理員,能夠在任何地方添加編輯和修改內容。你或許只想讓一部分人或者部門能訪問你的站點。
頁面樣式/模板:整個系統應該給人一種統一的風格,這就需要把業務處理和界面分開,這就需要把內容同顯示樣式分離開來。
面向對象OOP
php支持OOP。當我們把我們的系統組織的時候,會發現大量的代碼會反復的用到,比如連接數據庫,用戶驗證等等。保持代碼的整齊和美觀,我們把它們都放在classes文件中調用。當需要的時候我們再把對象實例化。所以類的想法可以在許多的場合使用。
例如,我們可以創建一個連接數據庫的類,當我們需要查詢數據庫的時候我們把這個類例化,如果你對這個概念不是很清楚不要緊,當我們開始我們的代碼是你會越來越了解的。這種方法可以把很復雜的系統分成小的和簡單的模塊,並且使事情簡單,便於管理,修改和找出錯誤。
現在我們考慮一下如何把系統有效的組織起來。當然這都和你自己的需求有關,下面的圖片是一個基本思路:
我們有四個主要的模塊在系統中大量使用。分別是數據庫的訪問,用戶上傳文件,模板的讀寫,用戶的登錄與注銷。所有類都是從systemObject類中繼承而來。
雖然它們都放在systemObject類中但是這四個類都各自獨立的。這種層次方法允許我們通過修改systemObject父類來改變所有的四個子類。另外,這種概念在我們開始具體實例的時候會更加清楚。在上面的圖表中是一個基本的管理系統,每個功能都需要一個或者更多的頁面來實現。