2011-03-09 34 views
1

我正在構建類似於Facebook的社交網絡類型網站。我使用PHP,JavaScript,jQuery,MySQL,Memcache和APC。我之前已經使用PHP構建了社交網絡,他們是非常複雜和龐大的應用程序(用戶系統,論壇,博客,配置文件,虛擬貨幣,貨幣存儲,消息傳遞以及更多功能/部分/模塊,但都在程序式編碼,我花了一年時間研究PHP面向對象的OO,現在我對PHP的OO有了更好的理解(很多感謝Stackoverflow)。之前,我對類和對象以及如何使用或創建它們一無所知。如何在PHP中使用MVC設計完成社交網絡?

好的回到問題,我打算建立自己的框架或更好地說,這個項目的代碼庫「,然後我可以在將來使用它,如果需要的話。我不想使用現有的框架,我寧願建立我自己的,所以我真的可以學習如何eac方法和對象等等。正在工作。

我傾向於使用MVC模式或類似的東西。我將擁有我將稱之爲模塊的內容。示例模塊;用戶或帳戶,郵件/消息,論壇,博客等...每個模塊幾乎都會投入使用,它將與我的其他代碼一起工作。所以每個模塊都會有它自己的文件夾並且非常獨立。 「模塊/論壇/」可能有控制器+模型+視圖....「modules/forums/controllers /」「modules/forums/models /」「modules/forums/views /」

這是我的基本IDEA到目前爲止,它完全可以並且可能會在完成所有工作時改變一些。

我已經創建了一個路由類,它將接受要匹配的URI數組映射。實例的結果,如果我去了
www.domain.com/forums/viewtopic/id-242342/page-23

然後將II與正則表達式匹配的數組會給我這樣的事情...

$uri['module'] = 'forums'; 
$uri['method'] = 'viewtopic'; 
$uri['id'] = '242342'; 
$uri['paging'] = '23'; 

然後,我可以使用該數組來構建或調用該頁面的相應內容。

我正在考慮使用一個簡單的模板/視圖類包括,將有HTML和PHP混合視圖文件,但沒有真正的logig除了if/else語句,的foreach,變量等

當我真正的問題或者我沒有完全理解......這種MVC類型模式似乎適用於簡單的頁面,例如博客,我可以讓MVC顯示博客文章或博客列表,但是更復雜的頁面就像你會看到的在Facebook這樣的網站中,一個博客頁面可能不僅僅是博客內容,它可能包含廣告塊,朋友塊等,以及其他網頁上的內容,對於網站使用MVC和視圖/模板是一個壞主意像那樣?我注意到所有的社交網站,包括臉書,沒有一個似乎使用這個系統,他們都有單獨的頁面來構建頁面,例如,郵件/消息將在messages.php上,而不是通過1個文件路由的所有內容。

我希望這個問題/帖子對某人有意義,有人可以提供一些見解,謝謝你的時間和任何建議/提示/建議!

+0

當你完成這個項目後,你會用一個預先制定的框架來投入一美元;) – 2011-03-09 23:42:13

+1

@Byron Whitlock我懷疑它,我的目標/夢想是建立我自己幾年,然後改進它一遍又一遍地盡我所能,對我來說沒有其他的成就感。但是,如果我切換到現有的,我至少很可能知道如何更好地使用它 – JasonDavis 2011-03-10 00:16:47

回答

1

我會使用一個現有的框架,但是如果你堅持創建自己的,請看看這個article關於如何編寫自己的PHP MVC框架。它的內容非常豐富,向您展示瞭如何克服與此類任務相關的一些挑戰。

至於MVC作爲複雜網頁的設計模式的功能和能力,Stackoverflow使用ASP。NET MVC 3,因爲它是WebFramework(ref)。 Nuff說。