ドキュメントと例を読んでいるうちに、LoggerInterface
が依存関係のコンストラクタを通り、seen hereとして渡され、依存関係が出力されることがわかりましたコンソールに接続します。Symfony Consoleアプリケーションでクラスからログを取る方法
私の質問は以下のとおりです。
私は複数のクラスを持っている場合、私はコンストラクタで
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);
}
}