From 4e74c8555b03bb1db664719f0d454eac82b5e6ff Mon Sep 17 00:00:00 2001 From: Pierre Rineau Date: Mon, 27 May 2024 10:37:58 +0200 Subject: [PATCH] issue #155 - move Symfony integration into Bridge/Symfony subfolder --- src/Bridge/Symfony/DbToolsBundle.php | 31 +++++++++++++++++++ .../Compiler/DbToolsPass.php | 4 +-- .../DbToolsConfiguration.php | 3 +- .../DependencyInjection/DbToolsExtension.php | 6 ++-- .../Symfony/Resources/config}/services.yaml | 0 src/DbToolsBundle.php | 20 +++++++++--- src/Helper/Cli/StandaloneConfiguration.php | 2 +- .../DbToolsConfigurationTest.php | 4 +-- .../DbToolsExtensionTest.php | 4 +-- 9 files changed, 59 insertions(+), 15 deletions(-) create mode 100644 src/Bridge/Symfony/DbToolsBundle.php rename src/{ => Bridge/Symfony}/DependencyInjection/Compiler/DbToolsPass.php (94%) rename src/{ => Bridge/Symfony}/DependencyInjection/DbToolsConfiguration.php (97%) rename src/{ => Bridge/Symfony}/DependencyInjection/DbToolsExtension.php (97%) rename {config => src/Bridge/Symfony/Resources/config}/services.yaml (100%) rename tests/Unit/{ => Bridge/Symfony}/DependencyInjection/DbToolsConfigurationTest.php (97%) rename tests/Unit/{ => Bridge/Symfony}/DependencyInjection/DbToolsExtensionTest.php (92%) diff --git a/src/Bridge/Symfony/DbToolsBundle.php b/src/Bridge/Symfony/DbToolsBundle.php new file mode 100644 index 00000000..7c879e6c --- /dev/null +++ b/src/Bridge/Symfony/DbToolsBundle.php @@ -0,0 +1,31 @@ +addCompilerPass(new DbToolsPass()); + } + + /** + * Override is required for backward compatibility. + * + * Remove this method when MakinaCorpus\DbToolsBundle\DbToolsBundle legacy + * class will be removed. + */ + #[\Override] + protected function getContainerExtensionClass(): string + { + return DbToolsExtension::class; + } +} diff --git a/src/DependencyInjection/Compiler/DbToolsPass.php b/src/Bridge/Symfony/DependencyInjection/Compiler/DbToolsPass.php similarity index 94% rename from src/DependencyInjection/Compiler/DbToolsPass.php rename to src/Bridge/Symfony/DependencyInjection/Compiler/DbToolsPass.php index dd9f727f..309b26d3 100644 --- a/src/DependencyInjection/Compiler/DbToolsPass.php +++ b/src/Bridge/Symfony/DependencyInjection/Compiler/DbToolsPass.php @@ -2,11 +2,11 @@ declare(strict_types=1); -namespace MakinaCorpus\DbToolsBundle\DependencyInjection\Compiler; +namespace MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection\Compiler; use MakinaCorpus\DbToolsBundle\Anonymization\Config\Loader\AttributesLoader; use MakinaCorpus\DbToolsBundle\Anonymization\Config\Loader\YamlLoader; -use MakinaCorpus\DbToolsBundle\DependencyInjection\DbToolsConfiguration; +use MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection\DbToolsConfiguration; use Symfony\Component\Config\Definition\Processor; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\ContainerBuilder; diff --git a/src/DependencyInjection/DbToolsConfiguration.php b/src/Bridge/Symfony/DependencyInjection/DbToolsConfiguration.php similarity index 97% rename from src/DependencyInjection/DbToolsConfiguration.php rename to src/Bridge/Symfony/DependencyInjection/DbToolsConfiguration.php index cfb63bf0..e47d0e3e 100644 --- a/src/DependencyInjection/DbToolsConfiguration.php +++ b/src/Bridge/Symfony/DependencyInjection/DbToolsConfiguration.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace MakinaCorpus\DbToolsBundle\DependencyInjection; +namespace MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection; use Symfony\Component\Config\Definition\ConfigurationInterface; use Symfony\Component\Config\Definition\Builder\TreeBuilder; @@ -45,6 +45,7 @@ public function getConfigTreeBuilder(): TreeBuilder throw throw new \InvalidArgumentException(\sprintf("Expected an int or valid date interval string value, got '%s'", \get_debug_type($v))); }; + // @phpstan-ignore-next-line $treeBuilder ->getRootNode() ->children() diff --git a/src/DependencyInjection/DbToolsExtension.php b/src/Bridge/Symfony/DependencyInjection/DbToolsExtension.php similarity index 97% rename from src/DependencyInjection/DbToolsExtension.php rename to src/Bridge/Symfony/DependencyInjection/DbToolsExtension.php index 575cbb31..9e631064 100644 --- a/src/DependencyInjection/DbToolsExtension.php +++ b/src/Bridge/Symfony/DependencyInjection/DbToolsExtension.php @@ -2,9 +2,10 @@ declare(strict_types=1); -namespace MakinaCorpus\DbToolsBundle\DependencyInjection; +namespace MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection; use MakinaCorpus\DbToolsBundle\Storage\FilenameStrategyInterface; +use Symfony\Component\Config\Definition\ConfigurationInterface; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; @@ -12,7 +13,6 @@ use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\HttpKernel\DependencyInjection\Extension; -use Symfony\Component\Config\Definition\ConfigurationInterface; final class DbToolsExtension extends Extension { @@ -22,7 +22,7 @@ public function load(array $configs, ContainerBuilder $container): void $configuration = $this->getConfiguration($configs, $container); $config = $this->processConfiguration($configuration, $configs); - $loader = new YamlFileLoader($container, new FileLocator(\dirname(__DIR__).'/../config')); + $loader = new YamlFileLoader($container, new FileLocator(\dirname(__DIR__).'/Resources/config')); $loader->load('services.yaml'); if (isset($config['storage_directory'])) { diff --git a/config/services.yaml b/src/Bridge/Symfony/Resources/config/services.yaml similarity index 100% rename from config/services.yaml rename to src/Bridge/Symfony/Resources/config/services.yaml diff --git a/src/DbToolsBundle.php b/src/DbToolsBundle.php index 5b647012..f962a002 100644 --- a/src/DbToolsBundle.php +++ b/src/DbToolsBundle.php @@ -4,15 +4,27 @@ namespace MakinaCorpus\DbToolsBundle; -use MakinaCorpus\DbToolsBundle\DependencyInjection\Compiler\DbToolsPass; +use MakinaCorpus\DbToolsBundle\Bridge\Symfony\DbToolsBundle as TheRealBundle; use Symfony\Component\DependencyInjection\ContainerBuilder; -use Symfony\Component\HttpKernel\Bundle\Bundle; -class DbToolsBundle extends Bundle +/** + * @deprecated + * This class is deprecated and will be remove in next major. + * @see \MakinaCorpus\DbToolsBundle\Bridge\Symfony\DbToolsBundle + */ +class DbToolsBundle extends TheRealBundle { #[\Override] public function build(ContainerBuilder $container): void { - $container->addCompilerPass(new DbToolsPass()); + \trigger_deprecation( + 'makinacorpus/db-tools-bundle', + '2.0.0', + "Class %s is deprecated and will be removed in next major version, please use %s instead.", + __CLASS__, + TheRealBundle::class, + ); + + parent::build($container); } } diff --git a/src/Helper/Cli/StandaloneConfiguration.php b/src/Helper/Cli/StandaloneConfiguration.php index 5a57bc25..4d048612 100644 --- a/src/Helper/Cli/StandaloneConfiguration.php +++ b/src/Helper/Cli/StandaloneConfiguration.php @@ -4,7 +4,7 @@ namespace MakinaCorpus\DbToolsBundle\Helper\Cli; -use MakinaCorpus\DbToolsBundle\DependencyInjection\DbToolsConfiguration; +use MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection\DbToolsConfiguration; use Symfony\Component\Config\Definition\Builder\TreeBuilder; class StandaloneConfiguration extends DbToolsConfiguration diff --git a/tests/Unit/DependencyInjection/DbToolsConfigurationTest.php b/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsConfigurationTest.php similarity index 97% rename from tests/Unit/DependencyInjection/DbToolsConfigurationTest.php rename to tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsConfigurationTest.php index c3a961d9..f17abdbc 100644 --- a/tests/Unit/DependencyInjection/DbToolsConfigurationTest.php +++ b/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsConfigurationTest.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace MakinaCorpus\DbToolsBundle\Tests\Unit\DependencyInjection; +namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Bridge\Symfony\DependencyInjection; -use MakinaCorpus\DbToolsBundle\DependencyInjection\DbToolsConfiguration; +use MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection\DbToolsConfiguration; use PHPUnit\Framework\TestCase; use Symfony\Component\Config\Definition\Processor; use Symfony\Component\Yaml\Yaml; diff --git a/tests/Unit/DependencyInjection/DbToolsExtensionTest.php b/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php similarity index 92% rename from tests/Unit/DependencyInjection/DbToolsExtensionTest.php rename to tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php index 5f4f5c1f..96351afc 100644 --- a/tests/Unit/DependencyInjection/DbToolsExtensionTest.php +++ b/tests/Unit/Bridge/Symfony/DependencyInjection/DbToolsExtensionTest.php @@ -2,9 +2,9 @@ declare(strict_types=1); -namespace MakinaCorpus\DbToolsBundle\Tests\Unit\DependencyInjection; +namespace MakinaCorpus\DbToolsBundle\Tests\Unit\Bridge\Symfony\DependencyInjection; -use MakinaCorpus\DbToolsBundle\DependencyInjection\DbToolsExtension; +use MakinaCorpus\DbToolsBundle\Bridge\Symfony\DependencyInjection\DbToolsExtension; use PHPUnit\Framework\Attributes\DependsExternal; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\ContainerBuilder;