作者malaycake1 (馬來糕)
看板PHP
標題Re: [請益] 請問PHP的MVC架構的問題
時間Fri Aug 8 18:51:05 2014
※ 引述《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 的介紹, 供你做參考.
共勉之.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 203.106.158.9
※ 文章網址: http://webptt.com/m.aspx?n=bbs/PHP/M.1407495069.A.B14.html
1F:→ MOONRAKER:傳統php: 不管你房子有多少房間,也不管在房間裡幹嘛 08/09 03:21
2F:→ MOONRAKER:可以在客廳工作睡覺吃飯,都沒問題 08/09 03:21
3F:→ MOONRAKER:MVC pattern: 規定php程式必須分成客廳、臥室、廚房 08/09 03:23
4F:→ MOONRAKER:MVC framework: 方便規劃客廳臥室廚房要幾間以及內裝 08/09 03:24
5F:→ MOONRAKER:並保證這些房間之間可以各自互通,不用爬窗出去再進來 08/09 03:25
6F:推 rocairforce:新阿姆斯特朗炫風噴射阿姆斯特朗砲的房間也有嗎 08/09 20:41
7F:→ MOONRAKER:有新阿姆斯特朗炮package,可以用composer裝… 08/09 22:51
8F:→ MOONRAKER:裝上去就變成新阿姆斯特朗炮serviceProvider... 08/09 22:52
9F:→ dlikeayu: 單筆輸出的可以在model先設定好defalut值有無資料 08/10 13:51
10F:→ dlikeayu: 多筆再從view抽出包裝成widget去讀model 08/10 13:52
11F:→ dlikeayu: 這樣子view的判斷式就已經減少很多了 08/10 13:52
12F:→ dlikeayu: default 08/10 13:53
13F:→ malaycake1: 謝指教, 第3點我只是用我知道的情況去說明view 跟 08/10 20:19
14F:→ malaycake1: coder的直接關係而已. 08/10 20:19