gggeek /
phpxmlrpc
| 1 | <?php |
||||
| 2 | require_once __DIR__ . "/_prepend.php"; |
||||
| 3 | |||||
| 4 | /** |
||||
| 5 | * Demoing how to inject a custom logger for use by the library |
||||
| 6 | */ |
||||
| 7 | |||||
| 8 | use PhpXmlRpc\Client; |
||||
| 9 | use PhpXmlRpc\Encoder; |
||||
| 10 | use PhpXmlRpc\PhpXmlRpc; |
||||
| 11 | use PhpXmlRpc\Request; |
||||
| 12 | |||||
| 13 | // Definition of a custom logger implementing the same API as the default one |
||||
| 14 | |||||
| 15 | class MyLogger |
||||
| 16 | { |
||||
| 17 | protected $debugBuffer = ''; |
||||
| 18 | protected $errorBuffer = ''; |
||||
| 19 | protected $warningBuffer = ''; |
||||
| 20 | |||||
| 21 | // logger API |
||||
| 22 | public function debug($message, $context = array()) |
||||
|
0 ignored issues
–
show
|
|||||
| 23 | { |
||||
| 24 | $this->debugBuffer .= $message . "\n"; |
||||
| 25 | } |
||||
| 26 | |||||
| 27 | public function error($message, $context = array()) |
||||
|
0 ignored issues
–
show
The parameter
$context is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||
| 28 | { |
||||
| 29 | $this->errorBuffer .= $message . "\n"; |
||||
| 30 | } |
||||
| 31 | |||||
| 32 | public function warning($message, $context = array()) |
||||
|
0 ignored issues
–
show
The parameter
$context is not used and could be removed.
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
This check looks for parameters that have been defined for a function or method, but which are not used in the method body. Loading history...
|
|||||
| 33 | { |
||||
| 34 | $this->warningBuffer .= $message . "\n"; |
||||
| 35 | } |
||||
| 36 | |||||
| 37 | public function getDebug() |
||||
| 38 | { |
||||
| 39 | return $this->debugBuffer; |
||||
| 40 | } |
||||
| 41 | |||||
| 42 | public function getError() |
||||
| 43 | { |
||||
| 44 | return $this->errorBuffer; |
||||
| 45 | } |
||||
| 46 | |||||
| 47 | public function getWarning() |
||||
| 48 | { |
||||
| 49 | return $this->warningBuffer; |
||||
| 50 | } |
||||
| 51 | } |
||||
| 52 | |||||
| 53 | // create the custom logger instance |
||||
| 54 | |||||
| 55 | $logger = new MyLogger(); |
||||
| 56 | |||||
| 57 | // inject it into all the classes (possibly) involved |
||||
| 58 | |||||
| 59 | PhpXmlRpc::setLogger($logger); |
||||
| 60 | |||||
| 61 | // then send a request |
||||
| 62 | |||||
| 63 | $input = array( |
||||
| 64 | array('name' => 'Dave', 'age' => 24), |
||||
| 65 | array('name' => 'Edd', 'age' => 45), |
||||
| 66 | array('name' => 'Joe', 'age' => 37), |
||||
| 67 | array('name' => 'Fred', 'age' => 27), |
||||
| 68 | ); |
||||
| 69 | |||||
| 70 | $encoder = new Encoder(); |
||||
| 71 | $client = new Client(XMLRPCSERVER); |
||||
| 72 | |||||
| 73 | // enable warnings for use of deprecated features |
||||
| 74 | PhpXmlRpc::$xmlrpc_silence_deprecations = false; |
||||
| 75 | |||||
| 76 | // set maximum debug level, to have all the communication details logged |
||||
| 77 | $client->setDebug(2); |
||||
| 78 | |||||
| 79 | // avid compressed responses, as they mess up the output if echoed on the command-line |
||||
| 80 | $client->setOption(Client::OPT_ACCEPTED_COMPRESSION, ''); |
||||
| 81 | |||||
| 82 | // send request |
||||
| 83 | output("Sending the request. No output debug should appear below...<br>"); |
||||
| 84 | $request = new Request('examples.sortByAge', array($encoder->encode($input))); |
||||
| 85 | $response = $client->send($request); |
||||
| 86 | output("Response received.<br>"); |
||||
| 87 | |||||
| 88 | output("The client error info is:<pre>\n" . $logger->getError() . "\n</pre>"); |
||||
| 89 | output("The client warning info is:<pre>\n" . $logger->getWarning() . "\n</pre>"); |
||||
| 90 | output("The client debug info is:<pre>\n" . $logger->getDebug() . "\n</pre>"); |
||||
| 91 |
This check looks for parameters that have been defined for a function or method, but which are not used in the method body.