※ 引述《cat99961 (阿湯)》之銘言:
: 因為發現有的公司在實作PHP似乎是用MVC架構的,於是上網查了一下MVC架構。
: 我歸納出
: Model-PHP程式設計師利用物件導向的方式撰寫一些模組供使用
: VIEW-介面設計人員進行圖形介面設計,和PHP程式設計師無關。
MVC的定義去看WIKI就好
其實WIKI的解釋滿詳細的
: 以下是我的疑問
: 1.請問以上這2點歸納的正確嗎?
: 2.Model一定用OO的方式寫嗎?
在正常的 MVC 的世界裡...應該全部都是OO
: 3.VIEW真的和PHP程式設計師無關嗎?
不可能....因為你也會需要有判斷的情境
也可能需要跑迴圈的情境
if & for(each) 應該會很常出現
但是絕對不會在 VIEW 上面看到商業邏輯
: 4.至於Controller我不太了解它是什麼,和"PHP程式設計師"有關嗎?
: 5. MVC 和 framework 一直常被一起提,framework 是否只是協助製作MVC架構的軟體?
: 6.不用framework 也可實作MVC嗎?用framework實作MVC真的會比較容易嗎?
: 希望各位高手可以幫我解答這些觀念上的問題,小妹感激不盡.....
不要執著在字面上的用意
MVC 只是一個概念
CONTROLLER 控制資料
MODEL 封裝資料
VIEW 畫資料
就這樣
FRAMEWORK 只是一個工具
用來幫助你快速開發的工具
所以 MVC FRAMEWORK,他只是輔助你寫出 MVC 基本概念而已
剩下的要靠你的程式架構與規劃去做
不用 FRAMEWORK 也可以做出 MVC
通常 MVC 的 URL 長這樣
http://localhost/index.php?r=job/view&aaa=1
index.php 是主要控制點
由他來分配要去哪一個 CONTROLLER
job 就是那個 CONTROLLER
但 job 下可能不只做一件事
可能下面還有 ajax, list
所以需要 /view 告訴 CONTROLLER 說
進到 job 後要去 view 的 function 畫畫面
而 aaa 就是 view 拿到的參數
你可以先從做簡單的 MVC 開始寫
CONTROLLER 拿到資料後
交給 MODEL 去封裝(變成你想要的資料結果)
然後交給 VIEW 去 RENDER
這樣子 OK 了,再去看 N-TIER
你會比較更了解 OO 在幹嘛
如果在更進階一點
再去看 DESIGN PATTERN
你就會知道 MVC 其實也是一種複合設計模式