2009-10-26 26 views
5

我正在做一個簡單的博客,我想用這個類。我想知道做這件事的最好方法是什麼。目前有3種方法可以看到。我做了一個獲得鏈接,帖子和評論的課程。在單個數組中返回所有這些數據的問題是,只應該一次回顯的數據與我返回的行的回顯次數相同。有些人會說這是正確的,我應該把所有東西放在一個數組中。我仍然不相信這是正確的路要走。設計一個PHP類。正確的方法

我真的很感謝你們有些人可能會設計一個類來處理這3件事。到目前爲止我所知道的唯一一件事就是鏈接到數據庫。我應該使用哪些其他成員對我還不清楚。再一次,我想在這裏看看應該如何做。

感謝, 約翰


好了,如果我有說3個方法是這樣的:

var $db; 

function GetPosts() { 
//posts 
} 

function GetComments() { 
// blog comments 
} 

function GetLinks() { 
// links for the blog 
} 

什麼可能是一些你們會使用成員?

此外,我想知道如果我應該有一個方法,調用其他方法。只需要一種公開方法,然後將所有這些其他方法變爲私有方法。公共方法將調用私有方法並返回它們的值。這是可取的嗎?

+0

隨着大量的免費開源博客平臺,你想努力做你自己的?你建議什麼特殊功能? – jldupont

+3

其實只是博客文章和評論。我只是享受編程方面的一切。 :) – JohnB

+2

我會假設他的目的是學習有關php和設計的知識,而不是讓別人使用的博客軟件。 – marr75

回答

0

CakePHP有一個tutorial on creating a blog使用廣泛採用的CakePHP框架。如果您有興趣在編寫博客時學習新框架,我會建議您這樣做。

如果您想手動編碼所有內容,但我建議您創建類來處理加載和保存(持久化)實體(鏈接,帖子註釋)或使用持久性框架(例如Doctrine ORM for PHP)。

問題是,您可以通過多種不同的方式實現您描述的功能;沒有普遍的答案。如果您提交了一些代碼,則更容易提供具體的建議。

+0

嗨Gergely Orosz,謝謝你的迴應。我已經嘗試了幾個不同的框架,但我不太在乎它們。無論如何,我自己做這件事情會很有趣。我知道有很多輔助函數,除了我遇到了其他「程序員」,他們不知道這個框架背後發生了什麼。不要誤解我的意思,我喜歡框架,但我更喜歡交互操作。我會在上面的課程中添加一些內容,也許你可以給我一些指導。再次感謝! – JohnB

1

如果你想從頭開始編寫它,我會首先爲博客的每個部分製作單獨的對象,即後置對象,註釋對象和鏈接對象。然後你可以考慮這些對象是如何相互交互的(例如,一個post對象可能包含一個評論對象數組),以及他們將如何處理基本的CRUD(創建,讀取(獲取),更新,刪除)操作。

+0

嗨GSto,謝謝你的回覆。我同意你爲博客的每個部分分開上課。我聽說這樣做會讓抽象保持完整性變得更難。雖然我仍然不確定。我要爲上面的方法添加一些內容,也許你可以讓我知道你會怎麼做來改變它。 – JohnB

+0

如何以這種方式做這件事會傷害抽象?我相信這樣維護會更容易,而不是讓一個博客類處理所有事情。 – GSto

0

我不知道您想要實現的任務的細節,但考慮一個工廠類Blog,例如有GetPostManager()方法。 PostManager可以創建,編輯,更新帖子並選擇它們。因此,$ Blog-> GetPostManager() - > GetPosts($ datefrom,$ dateto)將返回PostCollection類,它實現了Countable和Iterator接口來瀏覽帖子。 PostCollection是一個包含PostItem類的數組。 PostItem類是一個簡單的類,它可以映射到數據庫的屬性。

+0

感謝分形R。工廠模式聽起來不錯。所以,你會說用這三種方法創建一個類是錯誤的嗎?我知道有超過100種方法可以做事,但我想我正在尋找「最好」的方式。不一定是最簡單的。我認爲如果我想這樣做,它最終應該能夠擴展。 – JohnB

+0

不,三種方法都不錯,但是直到你擴展你的系統。如果我想添加更多的功能,那麼您的一個類將很快變得越來越擁擠越來越多的方法。所以,我認爲最好在開始時創建一些結構。尤其是,如果它不是很複雜。 –