Skip to content

Commit 821ddaa

Browse files
committed
Add logging plugin
1 parent a682733 commit 821ddaa

File tree

3 files changed

+73
-5
lines changed

3 files changed

+73
-5
lines changed

composer.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@
1313
],
1414
"require": {
1515
"php": ">=5.3.0",
16-
"phpforce/common": "dev-master"
16+
"phpforce/common": "dev-master",
17+
"psr/log": "*"
1718
},
1819
"require-dev": {
1920
"doctrine/common": "2.3@stable"
2021
},
2122
"suggest": {
22-
"doctrine/common": "For caching SOAP responses"
23+
"doctrine/common": "For caching SOAP responses",
24+
"monolog/monolog": "For logging SOAP transactions"
2325
},
2426
"autoload": {
2527
"psr-0": {
2628
"Phpforce\\SoapClient": "src"
2729
}
2830
}
29-
}
31+
}

src/Phpforce/SoapClient/ClientBuilder.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33

44
use Phpforce\SoapClient\Soap\SoapClientFactory;
55
use Phpforce\SoapClient\Plugin\LogPlugin;
6-
use Phpi\Log\LogInterface;
6+
use Psr\Log\LoggerInterface;
77

88
/**
99
* Salesforce SOAP client builder
10+
*
11+
* @author David de Boer <david@ddeboer.nl>
1012
*/
1113
class ClientBuilder
1214
{
@@ -35,7 +37,7 @@ public function __construct($wsdl, $username, $password, $token)
3537
*
3638
* @return ClientBuilder
3739
*/
38-
public function withLog(LogInterface $log)
40+
public function withLog(LoggerInterface $log)
3941
{
4042
$this->log = $log;
4143

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php
2+
namespace Phpforce\SoapClient\Plugin;
3+
4+
use Phpforce\SoapClient\Event\RequestEvent;
5+
use Phpforce\SoapClient\Event\ResponseEvent;
6+
use Phpforce\SoapClient\Event\FaultEvent;
7+
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
8+
use Psr\Log\LoggerInterface;
9+
10+
/**
11+
* A plugin that logs messages
12+
*
13+
* */
14+
class LogPlugin implements EventSubscriberInterface
15+
{
16+
/**
17+
* Constructor
18+
*
19+
* @param LoggerInterface $logger
20+
*/
21+
public function __construct(LoggerInterface $logger)
22+
{
23+
$this->logger = $logger;
24+
}
25+
26+
public function onClientRequest(RequestEvent $event)
27+
{
28+
$this->logger->info(sprintf(
29+
'[phpforce/soap-client] request: call "%s" with params %s',
30+
$event->getMethod(),
31+
\json_encode($event->getParams())
32+
));
33+
}
34+
35+
public function onClientResponse(ResponseEvent $event)
36+
{
37+
$this->logger->info(sprintf(
38+
'[phpforce/soap-client] response: %s',
39+
\print_r($event->getResponse(), true)
40+
));
41+
}
42+
43+
public function onClientFault(FaultEvent $event)
44+
{
45+
$this->logger->error(sprintf(
46+
'[phpforce/soap-client] fault "%s" for request "%s" with params %s',
47+
$event->getSoapFault()->getMessage(),
48+
$event->getRequestEvent()->getMethod(),
49+
\json_encode($event->getRequestEvent()->getParams())
50+
));
51+
}
52+
53+
/**
54+
* {@inheritdoc}
55+
*/
56+
public static function getSubscribedEvents()
57+
{
58+
return array(
59+
'phpforce.soap_client.request' => 'onClientRequest',
60+
'phpforce.soap_client.response' => 'onClientResponse',
61+
'phpforce.soap_client.fault' => 'onClientFault'
62+
);
63+
}
64+
}

0 commit comments

Comments
 (0)