|
各位前輩好,小弟不才問個大范圍(不好意思,有些用詞上的不同請多多包涵):
小弟自個兒摸索PHP沒有很長的時間,較多是摸索現(xiàn)成的CMS,偶而課堂上學到的也僅是使用DW內建的功能,透過修改使用的接收值去操作數(shù)據庫。 有玩過joomla及drupal,也用他們架了網站運行了一段時間。
因為從未自己逐行開發(fā)過系統(tǒng),看了這框架后覺得用這框架達成MVC的開發(fā)方式很方便,于是便著手試著開發(fā)。 也因為底子不夠厚,有些開發(fā)上的問題想與各位前輩討論番。
個人希望程式碼能夠模組化重復利用最好,于是模組盡量都寫的較為彈性。 也因為之前摸索cms的關系,認為模板與php最好都分開,因為希望是以系統(tǒng)的方式寫,所以寫的方式如下:
定義 config (網站的一些設定)
接著建立libraries內的MY_Controller,將一些基本需要載入的模組在MY_Controller載入) 各個控制器在透過extends MY_Controller去繼承。
網站的菜單部份我是寫一個模組將表單的資訊寫成陣列,呼叫模組只是將陣列傳出來(到時候要改成讀數(shù)據庫也可以,只是之前爬文,很多前輩提到最后大型網站會慢就是因為數(shù)據庫太多讀寫)
而網站提交需要用到表單部份,我也用上述方式將表單對應資料庫的相關數(shù)據寫為一個陣列,透過模組呼叫回傳陣列設定。 儲存的陣列模組資料如下,在透過不同的function去回傳不同資料表(表單)的數(shù)據。
PHP
$data = array( array( 'display' => false, 'name' => 'ID', 'field' => 'did', 'type' => 'text', 'size' => 10, 'default' => '', 'class' => null ), 復制代碼
讀取的模組如下(片段)
PHP
foreach ($in_data as $v) { if ($v['display']){ $form_set = array( 'name' => $v['field'], 'id' => $v['field'], 'value' => $v['default'], 'maxlength' => $v['size'] ); $result .= form_label ($v['name'], $v['field']); switch ($v['type']) { case 'text' : $result .= form_input ($form_set) ."<br />n"; break; case 'textarea' : $result .= form_textarea ($form_set) ."<br />n"; break; }; };// end if };//end foreach 復制代碼
而這樣寫的問題就是需要一直使用 foreach去撈資料、比對資料。 我想問這樣對于跟從數(shù)據庫撈這些數(shù)據產生表單這種寫法是否正確?
撈完資料后通常都是在透過另一個模組將資料轉換為html,最后生成的html再傳到view內。 也就是就單單一個需要用到表單頁面就需要
1.讀取設定檔(表單設定) 2.將1的資料傳到另一個模組去比對需要撈的資料庫的資料 3.將2的結果輸出為表單并轉成html 4.將3的資料傳到視圖。
所以每多一個資料表就需要多寫一個設定檔(對應表單欄位),且要透過多個模組呼叫處理。 雖然開發(fā)時每寫一個模組就是希望能夠再次利用,但是單一個網頁就需要這么多步驟,這樣子的流程是合理的嗎?
不好意思來這邊詢問,這邊討論比較熱烈,很多前輩開發(fā)經驗也很豐富,所以希望各位能給些開發(fā)mvc的經驗,謝謝 lanc |
-
|
|