2011-08-17 27 views
3

這是最好的/正確的方式,如果我想在PHP中創建一個輔助類?助手類 - 靜態方法VS標準功能

<?php 
class Helper { 

    static function helpThis() { 
     // code 
    } 

    static function helpThat() { 
     // code 
    } 
} 
?> 

或者

創建這樣一組函數的PHP文件:

<?php 
    function helpThis() { 
     // code 
    } 

    function helpThat() { 
     // code 
    } 
?> 

回答

1

我想這是一個包含靜態方法這樣

一個輔助類總是「更好」將方法放在課堂上。它不僅看起來更好,而且在使用類時更容易知道每個函數/方法的功能。例如,你可以創建一個主助手類和幾個從主類派生出來的輔助類。一切都已到位,明確瞭解它的功能。 ;)

3

我建議創建一個類。

這樣你可以節省自己的使用這些功能之前加入include helper.inc.php每次。在另一方面

類可以autoloadedHelper::helpThis(),就是這樣。

0

我能想到的一些很好的理由更喜歡一類具有功能上的靜態方法。

  1. 更多上下文。類名本身提供了更多的上下文,而不僅僅是函數名。如果你試圖用一個函數提供相同的信息,你最終會得到相當詳細的函數名稱。考慮下面的例子:

    UserTemplateHelper::printId($user); 
    // ... VS ... 
    userTemplateHelperPrintId($user); 
    

    人們通常做的是懶惰,所以函數名稱通常不像上面顯示的那樣冗長。這就是爲什麼你最終可能會提供更少的上下文。因此你的代碼不易讀。此外,如果您想將UserTemplateHelper更改爲其他內容,更改類名稱比使用該前綴的很多函數更容易。

  2. 自動加載VS包括。 包括 s和要求通常會使應用程序更容易出錯。它們也很煩人,因爲它只是另一種類型。此外,他們確實做的是創建一個不太可維護的應用程序,因爲您最終可能會有包括到處傳播與一個自動載入。我認爲通常最好集中邏輯。

  3. 共享變量。您可能希望稍後在您的功能之間共享一些變量。通過聲明一個私有的靜態變量,而不是使用難以調試的關鍵字和通常是邪惡的global關鍵字來做這樣的事情更容易。