看板 PHP 關於我們 聯絡資訊
※ 引述《markmcm (Markmcm)》之銘言: : 可是問題來了,我要設計的時候總不知道該從哪方開始設計。 : 這個三角圖沒有說 C 對 V 通常是 1 對多的關係 : 也沒有說一個 C 通常要對幾個 M : 我要怎樣才知道何時該開第二個 Model : 何時會需要多個 Controller : 什麼時候一個 Controller 方法會對應多個 View 分享一下最近練習CI的感想,我用CI的時候還不會OO,只會傳統procedure式的寫法, ,而且我以前碰最多的語言是組語,所以應該算是白紙一張吧?(遮臉) 我目前的在CI上開發的順序是,先把view做好,然後依照我的功能,決定有幾個 controller,controller在寫的時候,再依照需要開專屬的model。 例如:留言板功能。 工作順序: 1. 準備網頁畫面。 2. 決定功能。 3. 撰寫程式。 1的部份就不多說了,看個人美感跟喜好。 2的話就是拆解功能了,例如: 1. 留言顯示 2. 留言編輯 3. 留言刪除 4. 留言回覆引用 5. 使用者註冊 6. 使用者登入登出 7. 使用者設定資料 像以上幾個功能,就可以分出兩個主controller,一個是留言用的,一個是使用者。 所以由上面來看,使用者註冊、登入、設定個人資料各需要一個view。 這樣使用者這個controller就需要至少3個view,一對多的狀況就跑出來了。 至於model的部份,使用者跟留言的model應該有很大的不同,畢竟功能需求完全不一樣。 所以應該也略能解釋model的使用時機。 : 感覺要開發中等大小的程式時,沒有個開發的基準點。 : 也許是我只瞭解OO,所以感覺要定義物件比較簡單, : 但是像是 Model 這種東西要定義感覺有些困難。 model的話,我就純粹當他是個function包來用而已... XD : 重點就是我知道 MVC 是什麼,但是我不知道其設計的準則及方法。 我剛開始寫的時候,也有同樣的困擾,不過後來改成先做view後 再決定功能,就沒這困擾了。 : 另外一個小問題是,一個 Controller 只能 Scaffolding 到一個 table : 請問這有原因嗎?(為何不能一個方法就scaffold到一個 table) Scaffolding不曉得是幹麼的,不過2.0不是要拔掉了嗎?不如趁現在就當作 沒這玩意吧!XDD : 我覺得不知道這原因代表我還不瞭解CI的使用方法。 : 要是我想設計一個使用者能註冊且登入,然後貼文評論的程式, : 通常各位會採哪種方式跟順序作設計呢? : 謝謝閱讀:D 程式新手分享一點粗淺心得,希望對你有點幫助! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.35.243
chchwy:推 scaffolding已經不推薦使用了喔 12/24 15:38
g70321:其實我做到後來 實在不喜歡一個php檔案 程式碼很長 12/25 00:41
g70321:最後我的做法 action都會拆成很多個controller了 12/25 00:41
ybite:我覺得CodeIgniter的MVC其實是一種「簡化版的MVC」 12/25 04:31
ybite:我會覺得Model=Database,Controller=Program,View=Template 12/25 04:33
ybite:也因為非常簡化,你會覺得硬分成MVC實在沒什麼意義 XD 12/25 04:34
ybite:(Ruby on Rails的MVC就是一個相較之下比較複雜的例子, 12/25 04:35
ybite:Model是ActiveRecord,Controller是RESTful CRUD,View則有 12/25 04:36
ybite:自己的Template Engine。Rails的MVC例子值得細細參考。XD) 12/25 04:37
ybite:Scaffolding的本意是「一行做出一個可以CRUD的Controller」 12/25 04:47
ybite:所謂CRUD是指Create, Read, Update, Delete 基本四操作 12/25 04:48
ybite:不過這樣簡單又有點粗糙被拿掉我想也是意料之中 qq 12/25 04:48
markmcm:對不起這麼挽回,謝謝,我會照你的方式試試看 12/27 21:39