2010-01-31 38 views
1

整個MVC設計讓我有點困惑,因爲我從來沒有用過它。下面是我的當前項目的總體佈局...這是一個很大的PHP網站的佈局嗎?

的賬戶文件夾包含所有basicly我的核心文件我的用戶系統

根/帳號/ login.php中
根/帳號/家。 PHP
根/帳戶/ l​​ogout.php
根/帳戶/的settings.php

然後,我必須爲每個 「模塊」 一個單獨的文件夾(論壇,博客等)

任何函數和類和配置文件是從加載

根/論壇/根/博客/
根/郵件/

然後包括這樣

根/包括目錄/ classes/ root/includes/bootstrap.php //此文件自動加載所需的類文件並確保全站範圍內的數據庫連接

大部分「工作」是在課堂文件中完成的。顯然,我忽略了數百個文件和其他幾個文件夾(css/js/images /)

所以我想知道,這看起來像是一個大型網站的好設計嗎?這不算是MVC嗎?請不要將我引用到框架。

+2

以及它與其說是在文件系統中的佈局,而是你的類的佈局以及它們如何協同工作 – Mene 2010-01-31 18:10:44

+1

通過它的外觀,它似乎並不像一個MVC。爲了澄清,MVC可以很容易地描述爲,用戶使用*控制器*來操縱*模型*並將數據顯示在*視圖*中。看起來你的項目會有這種關係嗎? – 2010-01-31 18:11:28

+0

我傾向於在htdocs目錄之外儘可能多地放置(包含在其他文件中的所有文件)。這樣,當mod_php未加載時,您可以獲得一些額外的保護,以避免所有代碼可以下載。 – Wim 2010-01-31 19:15:07

回答

6

不,看起來好像你不一定使用MVC。他們大多通過他們的真實MVC名稱分組的時間:

如果我猜你是如何區分你的文件,你的結構看起來是這樣的

views/ 
    account/ 
    login.php 
    home.php 
    settings.php 
    logout.php 
controllers/ #maybe what you call modules 
    account.php 
    blog.php 
    mail.php 
models/  #maybe what you call "classes" are models 
    account.php 
    blog_entry.php 
    comment.php 

只是一個快速的參考:

  • M odel =爲特定對象/函數處理與數據庫的所有交互的類,通常與數據庫記錄的比例爲1比1(當然與其他模型有關係)。
  • V =顯示內容給用戶的句柄。這些文件中不應包含業務代碼(或很少)。例如,數據庫訪問不應在視圖中執行。
  • C ontroller =接收用戶請求的腳本,決定參與哪些模型,執行必要的操作(儘可能多地傳遞給個別模型),然後準備數據以顯示用戶和將其發送到視圖進行顯示。
+0

真棒答案+1 – Gabe 2010-01-31 18:58:09