From 49b55bceb9da65d9c59842e1b673b20d3bbb894c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylvain=20Raye=CC=81?= Date: Thu, 12 Aug 2021 08:52:20 +0200 Subject: [PATCH 1/2] Cleanup code: remove unused classes --- tests/functional/Builder/ExtractorTest.php | 1 - tests/functional/Builder/LoaderTest.php | 1 - 2 files changed, 2 deletions(-) diff --git a/tests/functional/Builder/ExtractorTest.php b/tests/functional/Builder/ExtractorTest.php index a210cc2..509a078 100644 --- a/tests/functional/Builder/ExtractorTest.php +++ b/tests/functional/Builder/ExtractorTest.php @@ -3,7 +3,6 @@ namespace functional\Kiboko\Plugin\CSV\Builder; use Kiboko\Plugin\CSV\Builder; -use Kiboko\Plugin\Log; use PhpParser\Node; final class ExtractorTest extends BuilderTestCase diff --git a/tests/functional/Builder/LoaderTest.php b/tests/functional/Builder/LoaderTest.php index e149b2e..b003d93 100644 --- a/tests/functional/Builder/LoaderTest.php +++ b/tests/functional/Builder/LoaderTest.php @@ -3,7 +3,6 @@ namespace functional\Kiboko\Plugin\CSV\Builder; use Kiboko\Plugin\CSV\Builder; -use Kiboko\Plugin\Log; use PhpParser\Node; final class LoaderTest extends BuilderTestCase From dea771df01b57fae82f964c23d6936b067f01278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sylvain=20Raye=CC=81?= Date: Thu, 12 Aug 2021 08:52:32 +0200 Subject: [PATCH 2/2] FEATURE: implements interface to allow satellite library to recognize plugins --- composer.json | 4 ++-- src/Configuration.php | 11 ++++++++--- src/Service.php | 22 +++++++++++++++++++++- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index 4a424ba..bb83807 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ "ext-json": "*", "nikic/php-parser": "^4.10", "symfony/config": "^5.2", - "php-etl/configurator-contracts": "^0.3.0", + "php-etl/configurator-contracts": "^0.4.0", "php-etl/packaging-contracts": "^0.1.0", "symfony/expression-language": "^5.2", "php-etl/satellite-toolbox": "^0.1.0" @@ -41,7 +41,7 @@ }, "extra": { "branch-alias": { - "dev-master": "0.3.x-dev" + "dev-master": "0.4.x-dev" }, "satellite": { "class": "Kiboko\\Plugin\\CSV\\Service" diff --git a/src/Configuration.php b/src/Configuration.php index 7367407..5dc1da5 100644 --- a/src/Configuration.php +++ b/src/Configuration.php @@ -2,18 +2,18 @@ namespace Kiboko\Plugin\CSV; -use Kiboko\Plugin\Log; +use Kiboko\Component\Satellite\NamedConfigurationInterface; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; -final class Configuration implements ConfigurationInterface +final class Configuration implements ConfigurationInterface, NamedConfigurationInterface { public function getConfigTreeBuilder(): TreeBuilder { $extractor = new Configuration\Extractor(); $loader = new Configuration\Loader(); - $builder = new TreeBuilder('csv'); + $builder = new TreeBuilder($this->getName()); $builder->getRootNode() ->validate() ->ifTrue(function (array $value) { @@ -35,4 +35,9 @@ public function getConfigTreeBuilder(): TreeBuilder return $builder; } + + public function getName(): string + { + return 'csv'; + } } diff --git a/src/Service.php b/src/Service.php index 090f0ba..8f89487 100644 --- a/src/Service.php +++ b/src/Service.php @@ -2,6 +2,9 @@ namespace Kiboko\Plugin\CSV; +use Kiboko\Contract\Configurator\ConfiguratorExtractorInterface; +use Kiboko\Contract\Configurator\ConfiguratorLoaderInterface; +use Kiboko\Contract\Configurator\ConfiguratorPackagesInterface; use Kiboko\Contract\Configurator\RepositoryInterface; use Kiboko\Contract\Configurator\InvalidConfigurationException; use Kiboko\Contract\Configurator\FactoryInterface; @@ -10,7 +13,7 @@ use Symfony\Component\Config\Definition\Processor; use Symfony\Component\ExpressionLanguage\ExpressionLanguage; -final class Service implements FactoryInterface +final class Service implements FactoryInterface, ConfiguratorLoaderInterface, ConfiguratorExtractorInterface, ConfiguratorPackagesInterface { private Processor $processor; private ConfigurationInterface $configuration; @@ -75,4 +78,21 @@ public function compile(array $config): RepositoryInterface throw new InvalidConfigurationException($exception->getMessage(), 0, $exception); } } + + public function getExtractorKey(): string + { + return 'extractor'; + } + + public function getLoaderKeys(): array + { + return ['loader']; + } + + public function getPackages(): array + { + return [ + 'php-etl/csv-flow:^0.2.0', + ]; + } }