2011-08-29 53 views
1

我正在編寫一個PHP MVC框架。現在,當我開始編碼時,我發現我迷失在實現應該去的地方:Index.php router.php registry et al。 我迷失了我應該在哪裏加載基本控制器和Model等。是否有任何圖表顯示適用於PHP的MVC流?不是一般的MVC模式,而是基於PHP的? 我已經閱讀了很多教程,並說,他們不使用相同的技術!事件流:PHP MVC模式

+0

試圖檢查下面的鏈接有什麼,我需要: http://stackoverflow.com/questions/3153347/need-guidance-regarding-the-correct-flow-of-my-php -mvc-framework –

+0

[Form following function](http://en.wikipedia.org/wiki/Form_follows_function)。除非您對各種組件有特定需求,否則實現諸如MVC之類的模式幾乎沒有什麼好處。一旦需求退出,模式將自我定義([with](http://oreilly.com/php/archive/mvc-intro.html)[a](http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1 /)[小](http://php-html.net/tutorials/model-view-controller-in-php/)[help] (http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller))。 –

回答

6

警告:這個答案是過時的,並且根據我大約6年前就有了「理解」。我會盡量在可預見的將來更新。

有沒有單一的「正確的方式」打賭有地獄很多錯誤的。

我只能解釋我對主觀的看法。這裏是爲了:

  • 的index.php
    • 套環境常數
    • 負載bootstrap.php中
  • bootstrap.php中(存在外DOCUMENT_ROOT)
    • 登記自動加載器
    • 加載router配置
    • 路由器從路徑集的輸入數據
    • 創建model factory
    • 創建controller,通過數據從路由器確定
      • 需要在構造
    • 創建view模型工廠內,由控制器確定的(V和C有1:1的關係)
    • 在控制器上執行動作,d從路由器的數據etermined
      • 使用模型工廠創建新models
      • 結合模型,查看模型
      • 變化狀態
      • 變化的視圖狀態
    • 視圖渲染頁面
      • 請求綁定模型的數據
      • 確定哪個templates到用途

這或多或少如下所謂的模型2或Web MVC結構。

這些模型負責業務邏輯,查看與呈現邏輯的交易和控制器將兩者連接在一起並根據傳入參數改變狀態。

enter image description here

+0

我在帖子中找到了這張圖。我認爲這是好的。讓我消化你的解釋,因爲他們似乎很有道理 http://stackoverflow.com/questions/2180106/what-is-the-mvc-program-flow –

+0

什麼是模型工廠和自動加載器? –

+0

@Stefano Autoloader會是一個基於[spl_autoload_register()](http://php.net/manual/en/function.spl-autoload-register.php)的類(或者甚至可能是單一函數)。這是PHP中用於簡化類的工作的機制。至於模特兒工廠,您需要觀看視頻[1](http://www.youtube.com/watch?v=RlfLCWKxHJ0)和[2](http://www.youtube.com/watch?v=- FRm3VPhseI)瞭解這一點。基本上它是一個爲您創建不同模型的類(如果您需要,可以使用數據庫訪問或緩存)。 –