※ 引述《cat99961 (阿湯)》之銘言:
: 因為發現有的公司在實作PHP似乎是用MVC架構的,於是上網查了一下MVC架構。
: 我歸納出
: Model-PHP程式設計師利用物件導向的方式撰寫一些模組供使用
: VIEW-介面設計人員進行圖形介面設計,和PHP程式設計師無關。
: 以下是我的疑問
: 1.請問以上這2點歸納的正確嗎?
: 2.Model一定用OO的方式寫嗎?
: 3.VIEW真的和PHP程式設計師無關嗎?
: 4.至於Controller我不太了解它是什麼,和"PHP程式設計師"有關嗎?
: 5. MVC 和 framework 一直常被一起提,framework 是否只是協助製作MVC架構的軟體?
: 6.不用framework 也可實作MVC嗎?用framework實作MVC真的會比較容易嗎?
: 希望各位高手可以幫我解答這些觀念上的問題,小妹感激不盡.....
1) 歸納不太正確, 而且方向錯了
2) 一定要, 原因有2, 第一, 寫成物件才能夠繼承 base model, 這樣才可以引用
framework 提供的工具,第二, 你的controller 才能"load"(中文應該叫裝載吧?),並
取的對應資料.
3) 不, 有關, 很多時候在view 需要寫基本的if,
if(isset($data)&&$data!=NULL)
echo $data;
如果不寫if, 你得程式很有可能跳出 $data 不存在等錯誤.
4)請參考另外一位仁兄的解釋, 那個比較傳神
5)MVC是程式設計的樣式(pattern), 但是凡是OOP, 遵守該設計模式整體會整齊.
例如framework = 屋子基本架構, 你需要補上牆壁/窗/門, MVC=每件屋子必須要有一廳
一廚一廁的概念, 所以 MVC是framework 的一部分, 也有framework沒有尊崇MVC的, 例如
Slim
6)可以, 但是很多東西你必須自己完成, 例如routing等.
我在前幾篇有提過, 網路上有一個叫 PHP-MVC barebone framework 的東西, 就是
你講的不用framework作MVC, 你可以自己參考看看
https://github.com/panique/php-mvc
我順便提供幾個學習資源,
http://phpconf.tw/2011/
這是phpconference 的管網, 2011年第一屆同時有幾個framework作介紹, 分別是:
codeigniter, Symfony
2012的時候就有 slim framework 的介紹, 供你做參考.
共勉之.