想用php寫個簡單的個人部落格系統?
來源:互聯網
上載者:User
不用wordpress之類現成的東西,想自己手寫,主要是想鞏固一下暑假期間看的PHP的基礎知識。
先肯定是建資料表嘛,常規來說,一般分幾個表?管理員資訊表,博文表,評論表,文章分類表....這裡感覺不知道該建哪些表,我看很多部落格都還會有一些文章標籤,文章歸檔,瀏覽榜,熱門評論之類的東西。
參考了一些教程,整個部落格用MVC方式,這個大致上還知道一下,沒有用過thinkphp之類的架構,不知有沒專業人士能夠大致上說一下具體的結構。
回複內容:
如果你只是練手。建議:
1. 到github找個好的項目閱讀原始碼
2. 找個好的教程對著練習資料庫是一切資料的基礎,按你自己的需求來進行設計
首先你需要從產品設計著手,先想好你這個程式將會涉及到有哪些功能點(後台管理?多使用者共存?多層分類?單文章多分類?標籤?文章標題圖?相簿系統?)。
比如你需要多使用者系統,那就需要member表,如果需要後台管理,則有兩種選擇,單獨建立administrtor表或者管理員也存在member表,後者的話,可以再建立一個member_type表來定義使用者類型。初級的都是諸如此類的問題,設計出來的資料庫能滿足你的產品需求就可以了。再進一步的話,使用者可以自訂欄位,那需要一個member_custom表之類的,以key->value形式來儲存使用者自訂的屬性。
剛開始設計笨拙一點沒關係,主要可以體會到資料庫這類比較死板的資料存放區形式的局限性,在你有需求變動的時候就可能要做更多的修改工作才能滿足。所謂經驗就是你在之後再做這類工作的時候知道這些設計的長短處(更靈活的設計意味著程式需要更多更巧妙的代碼),做出相應的取捨。我真的發現終於有個問題有資格回答了。
首先,我覺得,剛上手的話,還是別拿別人的改,你可能看都看不懂。
這學期有個軟體課,然後我們組我定的就是寫個部落格,本人瞭解知識:mvc架構基本流程(不是某個mvc架構哦),php基本知識,資料庫操作,html+css部分知識。
好了,於是我開始動手了,雖說是一個組,但是我是一個人完成的。
先寫架構:
index.php入口檔案:路徑常量,自動載入,分發參數。
架構檔案:包含資料庫操作,原廠模式產生單例模型,基礎控制器,基本模型類。
應用程式檔案:平台檔案夾:model,view,controller。
一個部落格,要分為前台和後台。
前台主要是訪問者看到的,就是:首頁,文章分享,筆記分享,自我介紹,留言板,搜尋方塊,文章歸檔,標籤欄等功能。(核心就是mysql查詢,加過濾顯示,加前端排版,sql注入等)
後台就是管理員操作:登入,控制session,文章的CRUD,筆記的CRUD,留言板的CRUD,退出等功能。(背景核心,操作資料庫,過濾資料,轉義資料,注入等)
後台最重要的,你看別人的部落格,文章裡是有圖的是吧,然而單純的用areatext是沒法做到的,百度一下,不對Google一下:富文字編輯器。然後有很多免費的富文字編輯器,下載一個好點的,有文檔有說明,照著做,然後插入的資料記得過濾,不過你在前台顯示的時候,不是要顯示標題和部分內容嗎,做好過濾:可能用到strip_tags,mb_substr等等。
然後基本的部落格就出來了,不過漏洞應該是多的數都數不清,怎麼辦呢,繼續學習吧題主,一起加油!資料庫設計
1 使用者表:使用者編號,登入名稱,密碼,顯示名,使用者分類編號(0:普通使用者,1:管理員),其它
2 文章分類表:分類編號,分類名,父分類編號(0:根分類(可實現無限級)),排序,其它(如是否顯示)
3 文章表:文章編號,標題,摘要圖,摘要內容,內容,發表時間,統計(瀏覽,評論等),發表人(使用者編號),文章分類(分類編號),關鍵詞(,詞一,詞二,詞三,),排序,置頂,推薦,其它(如是否顯示,是否允許評論等)
4 導航表:導航編號,導航顯示名稱(如:我愛php),導航地址(如:php,如果用php架構可以實現使用者訪問http://www.test.com/php
,程式自動讀取本導航對應文章分類下的資料),文章分類(分類編號)
5 評論表:評論編號,評論內容,發表時間,所屬文章編號,所屬父評論編號(可以實現無限級評論),發表人編號
6 檔案表:檔案編號,檔案存放地址(一般絕對於根目錄如:/file/img/1.jpg),檔案大小,檔案類型(0:圖片,1:檔案(一般是只能下載的txt,rar,zip...),2:video....),發表人編號
7 網站基本資料表:瀏覽器title,keyword等..
大致程式結構
1 共用部分:使用者登入,使用者退出,使用者個人頁面,使用者上傳檔案管理等
2 後台部分(僅管理員可以進入):上述所有資料庫表的增,刪,改,查
3 前台部分:按所有可用導航寫文章列表與文章詳細頁面,文章詳細列評論與添加評論;可能還會出現普通使用者個人中心(方便使用者看自己看過哪些文章,在哪些文章發過評論)
架構選擇
我學過tp,但我用的是ci,因為我覺得ci非常簡單,ci的手冊寫得非常好
可能涉及到的痛點
編輯器,現在大多用百度ueditor,但我還是用的是kindeditor
痛點在於這些編輯器本身不內建使用者檔案管理(例如使用者發評論的編輯器中選擇插入圖片,可以選擇以前已上傳的圖片),你得自己改動原編輯器代碼,實現這個功能謝邀,你說不想用wordpress我,想自己動手寫,鞏固基礎知識。
你不知道改寫一次前人的作品收穫遠遠大於自己瞎折騰嗎?部落格的架構結構都是大同小異,不管是php還是其它程式設計語言,如果你想獨立完成一個部落格系統,你可以參考成熟的部落格系統,Wordpress比較大,建議你從emlog入手,先學會用,再學會二次開發,再來獨立開發,取其精華,加上自己的創新,你將獲益匪淺。以自己的能力去寫一個強大的程式很難的,何況你是學習,你可以用來寫個新聞發布系統試試,其實原理也都差不多,主要是安全方面。可以加我QQ,我發我的資料庫設計檔案給你。。4873473.。
我自己寫的一個部落格系統,用TP3.2.3寫的,最近想用YII架構重寫。。我感覺我可能會被全世界最好的一幫程式員圍攻,但是本著分享的精神,發給題主一個連結,謹慎點擊,https://github.com/tornadoweb/tornado/tree/master/demos/blog
PHP只需要用來輸出資料庫,以json格式輸出文章等內容,靠js原生解析
評論引用外部現成的評論系統,如:多說、QDiscuss等
為什麼很多東西都要依賴後端,有必要嗎?