diff --git a/config/definition.php b/config/definition.php new file mode 100644 index 0000000..d2b80ad --- /dev/null +++ b/config/definition.php @@ -0,0 +1,23 @@ +rootNode() + ->children() + ->scalarNode(name: 'baseUri') + ->isRequired() + ->cannotBeEmpty() + ->example(example: 'http://localhost') + ->end() + ->scalarNode(name: 'token') + ->isRequired() + ->cannotBeEmpty() + ->example(example: 'your-secret-api-token') + ->end() + ->booleanNode(name: 'verifyHttps') + ->defaultTrue() + ->end() + ->end() + ; +}; diff --git a/src/Resources/config/services.yaml b/config/services.yaml similarity index 72% rename from src/Resources/config/services.yaml rename to config/services.yaml index adb80a9..312f305 100644 --- a/src/Resources/config/services.yaml +++ b/config/services.yaml @@ -3,4 +3,4 @@ services: class: Magdev\DolibarrApi\DolibarrApiClient arguments: [null, '%magdev.dolibarr_api.base_uri%', '%magdev.dolibarr_api.token%', '%magdev.dolibarr_api.verify_https%'] - Magdev\DolibarrApi\DolibarrApiClientInterface: ['@magdev.dolibarr_api.client'] + Magdev\DolibarrApi\DolibarrApiClientInterface: '@magdev.dolibarr_api.client' diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php deleted file mode 100644 index 0ff70b0..0000000 --- a/src/DependencyInjection/Configuration.php +++ /dev/null @@ -1,37 +0,0 @@ - - */ -final class Configuration implements ConfigurationInterface -{ - public function getConfigTreeBuilder(): TreeBuilder - { - $treeBuilder = new TreeBuilder(name: 'magdev_dolibarr_api'); - $rootNode = $treeBuilder->getRootNode(); - $rootNode->children() - ->scalarNode(name: 'baseUri') - ->isRequired() - ->cannotBeEmpty() - ->example(example: 'http://localhost') - ->end() - ->scalarNode(name: 'token') - ->isRequired() - ->cannotBeEmpty() - ->example(example: 'your-secret-api-token') - ->end() - ->booleanNode(name: 'verifyHttps') - ->defaultTrue() - ->end() - ->end() - ; - - return $treeBuilder; - } -} diff --git a/src/DependencyInjection/MagdevDolibarrApiExtension.php b/src/DependencyInjection/MagdevDolibarrApiExtension.php deleted file mode 100644 index 3e40856..0000000 --- a/src/DependencyInjection/MagdevDolibarrApiExtension.php +++ /dev/null @@ -1,36 +0,0 @@ - - */ -final class MagdevDolibarrApiExtension extends Extension -{ - public function load(array $configs, ContainerBuilder $container): void - { - $config = $this->processConfiguration(configuration: new Configuration(), configs: $configs); - - if (isset($config['baseUri'])) { - $container->setParameter(name: 'magdev.dolibarr_api.base_uri', value: $config['baseUri']); - } - if (isset($config['token'])) { - $container->setParameter(name: 'magdev.dolibarr_api.token', value: $config['token']); - } - if (isset($config['verifyHttps'])) { - $container->setParameter(name: 'magdev.dolibarr_api.verify_https', value: $config['verifyHttps']); - } - - $loader = new YamlFileLoader( - container: $container, - locator: new FileLocator(paths: __DIR__.'/../Resources/config') - ); - $loader->load(resource: 'services.yaml'); - } -} diff --git a/src/MagdevDolibarrApiBundle.php b/src/MagdevDolibarrApiBundle.php index d0e9e4d..223d9ac 100644 --- a/src/MagdevDolibarrApiBundle.php +++ b/src/MagdevDolibarrApiBundle.php @@ -3,12 +3,31 @@ declare(strict_types=1); namespace Magdev\DolibarrApiBundle; -use Symfony\Component\HttpKernel\Bundle\Bundle; +use Symfony\Component\Config\Definition\Configurator\DefinitionConfigurator; +use Symfony\Component\DependencyInjection\ContainerBuilder; +use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Symfony\Component\HttpKernel\Bundle\AbstractBundle; /** * @author Marco Grätsch */ -final class MagdevDolibarrApiBundle extends Bundle +final class MagdevDolibarrApiBundle extends AbstractBundle { - -} \ No newline at end of file + public function configure(DefinitionConfigurator $definition): void + { + $definition->import(resource: '../config/definition.php'); + } + + public function loadExtension(array $config, ContainerConfigurator $container, ContainerBuilder $builder): void + { + $container->parameters() + ->set(name: 'magdev.dolibarr_api.base_uri', value: $config['baseUri']) + ->set(name: 'magdev.dolibarr_api.token', value: $config['token']) + ->set(name: 'magdev.dolibarr_api.verify_https', value: $config['verifyHttps']) + ; + + $container->import(resource: '../config/services.yaml'); + + $container->services(); + } +}