Короче говоря, я пытаюсь использовать службу ведения журнала, которую я определил в пользовательской службе обработчика.
Мой config.yml
services:
authentication_handler:
class: Panasonic\LoginBundle\Handler\AuthenticationHandler
arguments: [ @custom_logger ]
custom_logger:
class: Monolog\Logger
arguments: [login]
calls:
- [ pushHandler, [ @custom_logger_stream ]]
custom_logger_stream:
class: Monolog\Handler\RotatingFileHandler
arguments: [ %kernel.logs_dir%/test.log, 30, 200 ]
«Сервисы:» в моем коде имеют хороший отступ, не беспокойтесь.
Мой пакет/обработчик/обработчик аутентификации
namespace Panasonic\LoginBundle\Handler;
use Monolog\Logger;
use Symfony\Component\Security\Http\Authentication\AuthenticationSuccessHandlerInterface;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class AuthenticationHandler implements AuthenticationSuccessHandlerInterface
{
private $custom_logger;
public function __constructor(Logger $custom_logger)
{
$this->custom_logger = $custom_logger;
}
public function onAuthenticationSuccess(Request $request,
TokenInterface $token)
{
$log = $this->custom_logger;
$log->addWarning('Foo');
$log->addError('Bar');
die;
// var_dump($token); die;
// var_dump($request->getSession()); die;
}
}
Я осознаю:
Fatal error: Call to a member function addWarning() on a non-object in ... Panasonic\LoginBundle\Handler\AuthenticationHandler.php on line 22
Примечание. Я знаю, что должен вернуть ответ в onAuthenticationSuccess, на самом деле он неполный, но я знаю, что он работает, я получил результаты из var_dumps.
Я предполагаю, что инъекция не подходит, как это сделать? Я не могу понять, что здесь делать. Пожалуйста, помогите
ссылки, которые я проверил: Доступ к службам внутри обычного класса