2010-02-01 81 views
9

如果我有字符串函數我使用了很多,我應該把它們放在助手類還是庫類中?php和框架中的庫和助手之間的區別

函數如下:如果超過30個字符,則截斷字符串,返回一個隨機字符串,使所有小寫字母等等。這些是我可能不需要創建對象的函數。最好將它們用作靜態方法。

我應該把它們放在一個庫類還是一個輔助類?

我什麼時候知道什麼時候放哪裏?

回答

13

助手是幫助已經存在的東西,例如可以有針對助手類:

陣列

網址

庫的東西,可以是任何解;它可能是您第一次創建並且沒有其他人創建。

因爲你正在處理一個字符串(已經存在的東西),所以你應該把它放在助手類中,或者修改框架的字符串助手類(如果有的話)。然而,這是一個慣例或標準,但如果你正在創建一些非常酷的字符串處理功能,你也可以爲它創建一個庫。

+1

你可以說庫類應該用來實例化對象。如果是這樣,那麼很容易知道何時創建助手以及何時創建庫類。但在java中,我們有數學課。而且只有靜態功能。回到原來的一個:) – ajsie 2010-02-01 05:54:04

+0

@noname:無法理解你的評論,但我沒有談論啓動或不啓動。 – Sarfraz 2010-02-01 06:03:44

3

我假設你使用的是CodeIgniter。

既然你已經寫過,你不需要實例化一個對象,並將它用在它的靜態方法中,那麼把它變成幫助器比將它變成庫是有意義的。

在CI中,助手也被管理,一旦加載,第二次嘗試加載它將被省略。您可以在助手中打開CI的構建以瞭解其功能,然後將其與庫進行比較。通過了解目的,您可以決定自己,助手或圖書館。

1

如果我有字符串函數我使用了很多,我應該把它們放在助手類還是庫類中?

如果他們是功能,你爲什麼要堅持他們在一個類? PHP允許自由浮動功能。

+0

PHP允許很多,爲什麼它有時會變得混亂。所以我想知道什麼是最好的結構。 – ajsie 2010-02-01 18:26:50

+0

如果不明確,我暗示我認爲免費功能是所描述情況的最佳結構。 – troelskn 2010-02-02 08:01:51

2

幫助器是用戶定義或預定義函數的集合,不需要實例化以及類需要實例化以使用它們的庫。庫也可能包含用戶定義的和預定義的函數/方法。函數庫(類)中定義的函數被稱爲方法!

11

除此之外解釋了這些所有的很好的manual ...

庫:實用工具類,其中對象的狀態是很重要的(支付網關,認證等)

助手:相關功能(而不是類)集合做重複任務(字符串,數組等)

插件:一種簡單的方法放入第三方類。通常,整個過程是用一個包裝函數調用的。 (在即將推出的CodeIgniter 2.0版中已棄用。)

相關問題