[MonologBridge] Fixed the WebProcessor

The WebProcessor can now be registered as a kernel.request listener to
get the request instead of passing it as a constructor argument, which
was broken as the request is not yet available when the logger is
instantiated.
This commit is contained in:
Christophe Coevoet 2012-04-23 22:54:56 +02:00
parent 44ba841a67
commit 689a40db16

View File

@ -13,6 +13,8 @@ namespace Symfony\Bridge\Monolog\Processor;
use Monolog\Processor\WebProcessor as BaseWebProcessor;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
use Symfony\Component\HttpKernel\HttpKernelInterface;
/**
* WebProcessor override to read from the HttpFoundation's Request
@ -21,8 +23,16 @@ use Symfony\Component\HttpFoundation\Request;
*/
class WebProcessor extends BaseWebProcessor
{
public function __construct(Request $request)
public function __construct()
{
parent::__construct($request->server->all());
// Pass an empty array as the default null value would access $_SERVER
parent::__construct(array());
}
public function onKernelRequest(GetResponseEvent $event)
{
if (HttpKernelInterface::MASTER_REQUEST === $event->getRequestType()) {
$this->serverData = $event->getRequest()->server->all();
}
}
}