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'