作者yororu (人生啊!)
看板PHP
標題Re: [請益] class和function
時間Wed Sep 5 15:12:40 2012
※ 引述《yororu (人生啊!)》之銘言:
: 我一向寫程式都是用function 去做
: 第一點是因為我覺得class的語法對我
: 而言是蠻不熟悉了..
: 看語法能懂..但是要自己去寫就覺得本
: 來用function 可以幾行就做到的東西..
: 卻要寫那麼長覺得不喜歡...
: 然後我在某網站也看到
: http://www.phpv.net/html/1453.html
: 執行速度慢很多
: 所以真的不知道在php裡用class的優點在那裡..
: 還有最近在學很多MVC架構的東西(ex:Codeigniter)..
: 也是覺得明明幾個function 就可以做出來..
: 好像要去理解那麼冗長的class和程序
: 然後執行速度很差
: 不知道有沒有人能夠反駁我的想法呢??
我舉一個例子..
在網路上都可以下載到用MVC模組做的CRM系統
然後我在看它的程式的時候..
明明就用一行就可以OK的東西..(要做select資料庫的動作)
他就要建一個class 放fuction.
如下:
function SelectDB($dbName)
{
$this->database = $dbName;
$this->databaseName = $dbName;
if ($this->_connectionID) {
return mysql_select_db($dbName,$this->_connectionID);
}else{
return false;
}
}
然後其他程式裡有一行如下
if ($argDatabasename) return $this->SelectDB($argDatabasename);
然後不知道為什麼...走到這行就出錯..
我在那裡debug很久...
最後乾脆全刪除用一行
mysql_select_db($dbName,$this->_connectionID);
就都OK了..
我不曉得到底用mvc建構為什麼要寫的這麼複雜????
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.61.150.138
※ 編輯: yororu 來自: 210.61.150.138 (09/05 15:15)
1F:→ tyf99:因為網路上下載的MVC架構,不是只有給你一個人用 09/05 15:23
2F:→ tyf99:obj.database, obj.databaseName 其它人都可能會用到 09/05 15:24
3F:推 LaPass:這是為了彈性、以及後續變動、維護的代價 09/05 15:24
4F:→ tyf99:很多情況下,不是能乾脆全刪除這麼簡單 09/05 15:24
5F:→ tyf99:你自己手刻MVC,也一樣可以刻得很精簡 09/05 15:26
6F:→ tyf99:你要寫出來給大家用時,就是要符合各種人的需求 09/05 15:27
7F:推 LaPass:說來話長..... 我對這個可是有切身之痛 = = 09/05 15:29
8F:推 gpmm:推一個說來話長…有點想回可是我好懶…(掩面 09/05 15:30
9F:→ tyf99:反正等他想改版,爆個一次就會學乖了 09/05 15:43
10F:→ tkdmaf:都在要求別人要寫完美的給你?那你有沒有寫完美的給人家? 09/05 15:52
11F:→ rocairforce:#1DRRPqjl 突然想到我寫過這麼一個莫名其妙的東西 09/05 15:52
12F:→ tkdmaf:何況你說你對class的寫法「蠻不熟悉」...... 09/05 15:53
13F:→ tkdmaf:試問不熟悉的話為什麼不先弄懂再來討論後續的問題? 09/05 15:53
我並不是要求別人寫完美的給我..
我只是在想..到網路去下載CRM改和乾脆自己寫那個比較好??
還有如果自己寫的話需要用到class嗎???還是說儘量少用效率會比較好呢??
※ 編輯: yororu 來自: 210.61.150.138 (09/05 16:12)
14F:推 Wush978:你要自己判斷這段程式未來會不會重複使用或是會不會改 09/05 16:48
15F:→ Wush978:只用一次的程式碼話寫ㄧ行收工很好阿 09/05 16:48
16F:→ tkdmaf:所以你以為只要單純處理資料庫運作,不用先過濾? 09/05 17:12
17F:→ tkdmaf:還是你期望所有的過濾機制都是靠自己一個一個刻出來? 09/05 17:12
18F:→ tkdmaf:然後就不打算有效的重覆使用? 09/05 17:12
19F:→ gpmm:呃…樓上冷靜一點 = = 09/05 17:13
20F:→ tkdmaf:另外就是你知道重覆使用物件的屬性~~~~ 09/05 17:14
21F:→ tkdmaf:有時可以在很多地方套用相同的資料來源而不用重LOAD 09/05 17:14
22F:→ tkdmaf:版主!我很冷靜!不用太擔心。 09/05 17:14
23F:→ CaptainH:這問題好像和物件導向沒什麼關係? 09/05 17:14
24F:→ tkdmaf:我只是認為對class不瞭解就說他不好這件事,感觸很深。 09/05 17:15
25F:→ tkdmaf:要說某件事不好,通常是有很深的體會才說得出口的。 09/05 17:16
26F:→ superpai:...... class在哪裡?沒看到呀? 09/05 21:01
27F:→ kerash:樓上,他的function是被包在class中,只是沒寫完整而已 09/05 21:36
28F:→ gname:自己刻+1, 邊刻邊學習...刻下去才會知道世界是如此的遼闊~ 09/05 23:00
29F:→ Canboo:當以後想偷懶時,你就會自然而然跳到class,現在多說無益 09/06 00:15
30F:→ Canboo:你可以研究一下別人提供的class,如果是你寫不用class會不 09/06 00:17
31F:→ Canboo:會比較好用或好寫好維護,這種是要用經驗和時間去體會的 09/06 00:18
32F:推 rocairforce:我想,如果妳的程式是射後不理 那就別class了 09/06 11:00
33F:→ LaPass:射後部裡的確用不著這種東西 09/06 11:26
34F:→ yororu:我們公司接的案子都是一般的中小企業網站..要做的東西不是 09/06 17:30
35F:→ yororu:很多..都單純是一般網頁客戶意見最新消息還有一些他們要求 09/06 17:31
36F:→ yororu:的功能...我做過大概10幾20個網站..大部份都維護2~3年,也有 09/06 17:33
37F:→ yororu:超過5年的..這些網站如果要去用frame做開發起來會很慢..我 09/06 17:34
38F:→ yororu:一開始就是用class去寫..後來一直改..本來以為可以重覆使用 09/06 17:35
39F:→ yororu:後來一改再改變得愈來愈寵大..我才放棄那種方法. 09/06 17:36
40F:→ yororu:改成寫幾支每個網站可能會用到的function 放同一個php裡.當 09/06 17:37
41F:→ yororu:要建新網站時直接copy過去..然後也是很快就建好.. 09/06 17:38
42F:→ yororu:是否我寫的案子都不夠大所以不用使用mvc架構或class呢? 09/06 17:40
43F:→ tkdmaf:這問題在於…你是做網站?還是有系統的網站? 09/06 20:43