當我閱讀文檔和示例時,發現LoggerInterface
通過依賴項的構造函數,如seen here,並且這允許依賴項輸出到控制檯。如何從Symfony控制檯應用程序中的類登錄
我的問題是:
如果我有多個班級做我一直沿着
LoggerInterface
傳入構造函數或是否有更好的做法呢?或者,我是否應該將它傳遞給這些課程?如果我想用
LoggerInterface
做一個班級工作,我會一直檢查$this->logger
是否爲空,然後採取相應措施?
例如,
class ObjectOne {
/**
* @var LoggerInterface
*/
private $logger;
public function __construct (LoggerInterface $logger) {
$this->logger = $logger;
}
}
class ObjectTwo {
/**
* @var ObjectOne[]
*/
private $items;
/**
* @var LoggerInterface
*/
private $logger;
public function __construct (LoggerInterface $logger) {
$this->logger = $logger;
}
public function addObject() {
$this->items[] = new ObjectOne($this->logger);
}
}