/** * @param Symfony\Components\EventDispatcher\Event $event * @param Bundle\ServerBundle\ResponseInterface $response * @return Bundle\ServerBundle\ResponseInterface * * @see Symfony\Components\EventDispatcher\EventDispatcher::filter() */ public function filter(Event $event, ResponseInterface $response) { $request = $event->getSubject(); if ($request->hasHeader('Accept-Encoding')) { foreach ($request->splitHttpAcceptHeader($request->getHeader('Accept-Encoding')) as $encoding) { $encoding = strtolower($encoding); if (in_array($encoding, $this->encodings)) { $response->setBody($compressed = call_user_func(array($this, $encoding), $body = $response->getBody())); $response->setHeader('Content-Encoding', $encoding); $response->setHeader('Content-Length', $length = strlen($compressed)); // add compression statistics $event->setParameter('compression', true); $event->setParameter('compression.encoding', $encoding); $event->setParameter('compression.level', $this->level); $event->setParameter('compression.before', strlen($body)); $event->setParameter('compression.after', $length); return $response; } } } return $response; }
$parameters = array('foo' => 'bar'); $event = new Event($subject, 'name', $parameters); // ->getSubject() $t->diag('->getSubject()'); $t->is($event->getSubject(), $subject, '->getSubject() returns the event subject'); // ->getName() $t->diag('->getName()'); $t->is($event->getName(), 'name', '->getName() returns the event name'); // ->getParameters() ->setParameter() ->hasParameter() ->getParameter() $t->diag('->getParameters()'); $t->is($event->getParameters(), $parameters, '->getParameters() returns the event parameters'); $t->is($event->getParameter('foo'), 'bar', '->getParameter() returns the value of a parameter'); $event->setParameter('foo', 'foo'); $t->is($event->getParameter('foo'), 'foo', '->setParameter() changes the value of a parameter'); $t->ok($event->hasParameter('foo'), '->hasParameter() returns true if the parameter is defined'); unset($event['foo']); $t->ok(!$event->hasParameter('foo'), '->hasParameter() returns false if the parameter is not defined'); try { $event->getParameter('foobar'); $t->fail('->getParameter() throws an \InvalidArgumentException exception when the parameter does not exist'); } catch (\InvalidArgumentException $e) { $t->pass('->getParameter() throws an \InvalidArgumentException exception when the parameter does not exist'); } $event = new Event($subject, 'name', $parameters);