Traits是PHP5.4最大的新增功能之一.我了解特征背后的语法,理解特征背后的思想,比如水平代码对日志(log)、安全性、缓存等常见内容的重用.
然而,我仍然不知道我将如何在我的项目中利用特性.
有没有已经使用traits的开源项目?有关于如何使用traits构建架构的好文章/阅读material 吗?
Traits是PHP5.4最大的新增功能之一.我了解特征背后的语法,理解特征背后的思想,比如水平代码对日志(log)、安全性、缓存等常见内容的重用.
然而,我仍然不知道我将如何在我的项目中利用特性.
有没有已经使用traits的开源项目?有关于如何使用traits构建架构的好文章/阅读material 吗?
我个人的观点是,在编写干净的代码时,实际上很少有人应用特性.
与其使用traits将代码破解到类中,不如通过构造函数或setter传入依赖项:
class ClassName {
protected $logger;
public function __construct(LoggerInterface $logger) {
$this->logger = $logger;
}
// or
public function setLogger(LoggerInterface $logger) {
$this->logger = $logger;
}
}
我发现这比使用trait更好的主要原因是,通过消除与trait的硬耦合,代码更加灵活.例如,您现在可以简单地传递一个不同的记录器类.这使您的代码可重用且可测试.