Я пытаюсь динамически дать службе Logger имя разрешающего класса (или самого экземпляра разрешающего класса), используя внедрение зависимостей, как указано в приведенном ниже коде.Возможно ли это даже с помощью Symfony DI, я не смог найти решения для этого.
Заранее спасибо!
services.yml
services:
// ...
MyLogger\Logger:
arguments: ["%className%"] // is it possible to do sth. like this?
Logger.php
class Logger
{
public function __construct(string $className)
{
$this->className = $className;
}
public function log(string $message)
{
echo "{$this->className}: {$message}";
}
}
MyClass.php
use MyLogger\Logger;
class MyClass
{
public function __construct(Logger $logger)
{
$this->logger = $logger;
}
public function getFoo()
{
// Should echo: "MyClass: Called getFoo()"
$this->logger->log("Called getFoo()");
}
}