Files
ednotif-bundle/config/services.php

51 lines
1.6 KiB
PHP

<?php
declare(strict_types=1);
use Malio\EdnotifBundle\Api\BovinApi;
use Malio\EdnotifBundle\Api\BovinApiInterface;
use Malio\EdnotifBundle\Auth\TokenProvider;
use Malio\EdnotifBundle\Soap\SoapClientFactory;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
return static function (ContainerConfigurator $container): void {
$services = $container->services()
->defaults()
->autowire()
->autoconfigure();
$services->set(SoapClientFactory::class)
->arg('$soapOptions', '%ednotif.soap_options%');
// SoapClient Guichet
$services->set('ednotif.soap.guichet', SoapClient::class)
->factory([service(SoapClientFactory::class), 'create'])
->args(['%ednotif.guichet_wsdl%']);
// SoapClient Métier
$services->set('ednotif.soap.metier', SoapClient::class)
->factory([service(SoapClientFactory::class), 'create'])
->args(['%ednotif.metier_wsdl%']);
$services->set(TokenProvider::class)
->args([
service('ednotif.soap.guichet'),
'%ednotif.entreprise%',
'%ednotif.zone%',
'%ednotif.application%',
'%ednotif.login%',
'%ednotif.password%',
'%ednotif.token_ttl_seconds%',
service('cache.app'),
]);
$services->set(BovinApi::class)
->args([
service(TokenProvider::class),
service('ednotif.soap.metier'),
]);
$services->alias(BovinApiInterface::class, BovinApi::class)->public();
};