* @license AGPL v3 * @link http://cweiske.de/linksys-wrt3g-tools.htm */ /** * Observer to catch debugging data from the HTTP request. * * @category Tools * @package linksys-wrt3g-tools * @author Christian Weiske * @license AGPL v3 * @link http://cweiske.de/linksys-wrt3g-tools.htm */ class Wrt3g_RequestObserver implements SplObserver { protected $wrt3g; protected static $supportedEvents = array( 'connect', 'sentHeaders', 'receivedBody', 'disconnect' ); /** * Create new instance * * @param Wrt3g $wrt3g Logger */ public function __construct(Wrt3g $wrt3g) { $this->wrt3g = $wrt3g; } /** * Receive notification from HTTP_Request2 * * @param SplSubject $subject The request object * * @return void */ public function update(SplSubject $subject) { $event = $subject->getLastEvent(); if (!in_array($event['name'], self::$supportedEvents)) { return; } if ($event['name'] == 'receivedBody') { $resp = $event['data']; $event['data'] = $resp->getStatus() . ' ' . $resp->getReasonPhrase() . "\n" . 'Header: ' . var_export($resp->getHeader(), true) . $resp->getBody() . "\n----\n"; } $this->wrt3g->log( 'event: ' . $event['name'] . ', ' . 'data: ' . $event['data'], 3 ); } } ?>