From 2b15331c92651788cbc72638ae11408778a04293 Mon Sep 17 00:00:00 2001 From: gggeek Date: Tue, 31 Jan 2023 20:05:44 +0000 Subject: [PATCH] add to Sf demo the overtaking of the logger --- demo/client/symfony/ClientController.php | 10 +++++++++- demo/client/symfony/services.yaml | 2 ++ demo/server/symfony/ServerController.php | 9 +++++++-- demo/server/symfony/services.yaml | 4 +++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/demo/client/symfony/ClientController.php b/demo/client/symfony/ClientController.php index b42ed0d6..38832b17 100644 --- a/demo/client/symfony/ClientController.php +++ b/demo/client/symfony/ClientController.php @@ -3,20 +3,28 @@ namespace App\Controller; use PhpXmlRpc\Client; +use PhpXmlRpc\PhpXmlRpc; use PhpXmlRpc\Request; use PhpXmlRpc\Value; +use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpKernel\Exception\HttpException; use Symfony\Component\Routing\Annotation\Route; +/** + * An example usage of the xml-rpc client, configured as a service, from within a Symfony controller + */ class ClientController extends AbstractController { protected $client; - public function __construct(Client $client) + public function __construct(Client $client, LoggerInterface $logger = null) { $this->client = $client; + if ($logger) { + PhpXmlRpc::setLogger($logger); + } } #[Route('/getStateName/{stateNo}', name: 'getstatename', methods: ['GET'])] diff --git a/demo/client/symfony/services.yaml b/demo/client/symfony/services.yaml index f97690e4..6f1914af 100644 --- a/demo/client/symfony/services.yaml +++ b/demo/client/symfony/services.yaml @@ -15,3 +15,5 @@ services: App\Controller\ClientController: arguments: $client: '@App\Service\XmlRpcClient' + # in case you want to use a dedicated log file for all xml-rpc related stuff + #$logger: '@monolog.logger.xmlrpc' diff --git a/demo/server/symfony/ServerController.php b/demo/server/symfony/ServerController.php index 80a0c8a9..6c8ee396 100644 --- a/demo/server/symfony/ServerController.php +++ b/demo/server/symfony/ServerController.php @@ -2,7 +2,9 @@ namespace App\Controller; +use PhpXmlRpc\PhpXmlRpc; use PhpXmlRpc\Server; +use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; @@ -11,13 +13,16 @@ class ServerController extends AbstractController { protected $server; - public function __construct(Server $server) + public function __construct(Server $server, LoggerInterface $logger = null) { $this->server = $server; + if ($logger) { + PhpXmlRpc::setLogger($logger); + } } # This single method serves ALL the xml-rpc requests. - # The configuration for which xml-rpc methods exist and how they are handled is carried out in the Server service + # The configuration for which xml-rpc methods exist and how they are handled is carried out in the Server service definition #[Route('/xmlrpc', name: 'xml_rpc', methods: ['POST'])] public function serve(): Response { diff --git a/demo/server/symfony/services.yaml b/demo/server/symfony/services.yaml index 79e7010e..60abeadb 100644 --- a/demo/server/symfony/services.yaml +++ b/demo/server/symfony/services.yaml @@ -2,7 +2,7 @@ parameters: xml_rpc_server_options: [] services: - # explicitly configure the services + # explicitly configure the services where autowiring is impossible App\Service\CommentManager: class: CommentManager @@ -29,3 +29,5 @@ services: App\Controller\ServerController: arguments: $server: '@App\Service\XmlRpcServer' + # in case you want to use a dedicated log file for all xml-rpc related stuff + #$logger: '@monolog.logger.xmlrpc' -- 2.47.0