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