From: gggeek <giunta.gaetano@gmail.com>
Date: Tue, 31 Jan 2023 20:05:44 +0000 (+0000)
Subject: add to Sf demo the overtaking of the logger
X-Git-Tag: 4.10.0~51
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=2b15331c92651788cbc72638ae11408778a04293;p=plcapi.git

add to Sf demo the overtaking of the logger
---

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'