Если вы хотите использовать $Logger
из метода объекта, вам необходимо пометить его как глобальный в этом методе. Если вы этого не сделаете, то создадите новую локальную переменную $ Logger. Я подозреваю, что в этом проблема. Например:
class templatesList {
public function __construct() {
global $Logger;
//now we can use $logger.
}
}
Однако, вероятно, было бы лучше передать $ Logger в конструктор каждого объекта, который должен его использовать. Глобальные переменные обычно не считаются хорошей практикой.
class templatesList {
protected $Logger;
public function __construct(Logger $Logger) {
//now we can use $logger.
//store reference we can use later
$this->Logger = $Logger;
}
public function doSomething() {
$this->Logger->log('something');
}
}
new templatesList($Logger);