2
我們以此爲例,我有一個方法在Validator類中調用validateDateTime。此功能非常簡單,可以檢查日期時間是否爲所需格式。Symfony:服務容器VS靜態方法
namespace MyApp\Util;
use \DateTime;
class Validator {
public static function validateDateTime($dateTime, $format = 'Y-m-d') {
$d = DateTime::createFromFormat($format, $dateTime);
return $d && $d->format($format) == $dateTime;
}
}
之前我瞭解到Symfony的,我總是用靜態方法爲了便於使用的功能,如果該功能必須在應用程序共享。
在學習了Symfony之後,我知道Symfony具有非常強大的功能,這是一個服務容器,它執行同樣的方便來訪問將在整個應用程序中使用的函數。
我的問題是:
- 什麼是使用靜態方法VS服務容器的利弊
- 在Symfony的最佳實踐,是建議在靜態方法來使用服務容器,如果我想達到相同的目的(在整個應用程序中共享的功能)。
- 在什麼情況下,什麼時候,爲什麼,我們需要用靜態方法
您的評論和意見都非常讚賞。
FRom測試的觀點靜態方法很難模擬 – Matteo