blob: f9886385e94afd8210bfc9109a4b8427c42ec4e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
<?php
/**
* Part of Linksys WRT3G tools
*
* PHP version 5
*
* @category Tools
* @package linksys-wrt3g-tools
* @author Christian Weiske <cweiske@cweiske.de>
* @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 <cweiske@cweiske.de>
* @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
);
}
}
?>
|