【发布时间】:2017-04-01 01:49:42
【问题描述】:
我们以此为例,我在 Validator 类中有一个方法调用 validateDateTime。这个功能很简单,就是检查日期时间是否符合要求的格式。
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 有一个非常强大的全功能,它是服务容器,可以方便地访问将在整个应用程序中使用的功能。
我的问题是:
- 使用静态方法与服务容器有什么优缺点
- 在 Symfony 最佳实践中,如果我想达到相同的目的(跨整个应用程序共享的功能),是否建议使用服务容器而不是静态方法。
- 什么情况、什么时候、为什么需要使用静态方法
非常感谢您的评论和意见。
【问题讨论】:
-
从测试的角度来看静态方法很难模拟
标签: php symfony service static-methods