From f8db91d5e137e711d3aed92a0f9c833526d29df5 Mon Sep 17 00:00:00 2001 From: Andreas Braun Date: Wed, 27 Nov 2019 08:37:05 +0100 Subject: [PATCH 1/2] Use symfony/flex to lock Symfony dependencies to the same version --- .travis.yml | 18 ++++++++---------- composer.json | 1 + 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 80e485a76..8526910a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,10 +19,10 @@ env: before_install: - mv ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini{,.disabled} || echo "xdebug not available" - composer self-update - - if [ "$SYMFONY_VERSION" != "" ]; then jq "(.require, .\"require-dev\")|=(with_entries(if .key|test(\"^symfony/\") then .value|=\"${SYMFONY_VERSION}\" else . end))" composer.json|ex -sc 'wq!composer.json' /dev/stdin; fi; + - composer global require --no-progress --no-scripts --no-plugins symfony/flex dev-master install: - - travis_retry composer update -n --prefer-dist + - travis_retry composer update -n --prefer-dist --prefer-stable script: - ./vendor/bin/phpunit -v @@ -37,21 +37,20 @@ jobs: # Test against latest Symfony 3.4 stable - php: 7.3 - env: SYMFONY_VERSION="3.4.*" SYMFONY_DEPRECATIONS_HELPER=999999 + env: SYMFONY_REQUIRE="3.4.*" SYMFONY_DEPRECATIONS_HELPER=999999 # Test against latest Symfony 4.3 stable - php: 7.3 - env: SYMFONY_VERSION="4.3.*" + env: SYMFONY_REQUIRE="4.3.*" install: - - composer require --dev "symfony/messenger:4.3.*" --no-update - - travis_retry composer update -n --prefer-dist + - composer require --dev symfony/messenger --no-update + - travis_retry composer update -n --prefer-dist --prefer-stable # Test against latest Symfony 4.4 dev - php: 7.3 - env: SYMFONY_VERSION="4.4.*@dev" SYMFONY_DEPRECATIONS_HELPER=1 + env: SYMFONY_REQUIRE="4.4.*" install: - - composer config minimum-stability dev - - composer require --dev "symfony/messenger:4.4.*@dev" --no-update + - composer require --dev symfony/messenger --no-update - travis_retry composer update -n --prefer-dist # Test dev versions @@ -59,7 +58,6 @@ jobs: if: type = cron env: DEV install: - - composer config minimum-stability dev - travis_retry composer update -n --prefer-dist - stage: Code Quality diff --git a/composer.json b/composer.json index 9ad06efd2..c6ca76d2d 100644 --- a/composer.json +++ b/composer.json @@ -5,6 +5,7 @@ "keywords": ["DBAL", "ORM", "Database", "Persistence"], "homepage": "http://www.doctrine-project.org", "license": "MIT", + "minimum-stability": "dev", "authors": [ { "name": "Fabien Potencier", From fe28c21944cc6397792593358a45214801e1abc0 Mon Sep 17 00:00:00 2001 From: David Maicher Date: Wed, 27 Nov 2019 09:02:13 +0100 Subject: [PATCH 2/2] Fix: use array adapter cache pools by default --- DependencyInjection/DoctrineExtension.php | 24 +++++++++---------- .../AbstractDoctrineExtensionTest.php | 4 ++-- .../DoctrineExtensionTest.php | 21 +++++++++------- composer.json | 2 +- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/DependencyInjection/DoctrineExtension.php b/DependencyInjection/DoctrineExtension.php index 07f4405b1..0498ef703 100644 --- a/DependencyInjection/DoctrineExtension.php +++ b/DependencyInjection/DoctrineExtension.php @@ -15,6 +15,7 @@ use Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware; use Symfony\Bridge\Doctrine\PropertyInfo\DoctrineExtractor; use Symfony\Bridge\Doctrine\Validator\DoctrineLoader; +use Symfony\Component\Cache\Adapter\ArrayAdapter; use Symfony\Component\Cache\DoctrineProvider; use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\Alias; @@ -743,7 +744,7 @@ protected function loadCacheDriver($cacheName, $objectManagerName, array $cacheD if ($cacheDriver['type'] === null) { $cacheDriver = [ 'type' => 'pool', - 'pool' => $this->getPoolNameForCacheDriver($cacheName), + 'pool' => $this->createArrayAdapterCachePool($container, $objectManagerName, $cacheName), ]; } @@ -893,11 +894,7 @@ private function loadMessengerServices(ContainerBuilder $container) : void private function createPoolCacheDefinition(ContainerBuilder $container, string $poolName) : string { - if (! class_exists(DoctrineProvider::class)) { - throw new LogicException('Using the "pool" cache type is only supported when symfony/cache is installed.'); - } - - $serviceId = sprintf('doctrine.orm.cache.pool.%s', $poolName); + $serviceId = sprintf('doctrine.orm.cache.provider.%s', $poolName); $definition = $container->register($serviceId, DoctrineProvider::class); $definition->addArgument(new Reference($poolName)); @@ -906,13 +903,14 @@ private function createPoolCacheDefinition(ContainerBuilder $container, string $ return $serviceId; } - private function getPoolNameForCacheDriver(string $driverName) : string + private function createArrayAdapterCachePool(ContainerBuilder $container, string $objectManagerName, string $cacheName) : string { - switch ($driverName) { - case 'metadata_cache': - return 'cache.system'; - default: - return 'cache.app'; - } + $id = sprintf('cache.doctrine.orm.%s.%s', $objectManagerName, str_replace('_cache', '', $cacheName)); + + $poolDefinition = $container->register($id, ArrayAdapter::class); + $poolDefinition->addTag('cache.pool'); + $container->setDefinition($id, $poolDefinition); + + return $id; } } diff --git a/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php b/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php index 92f910683..59b8e088e 100644 --- a/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php +++ b/Tests/DependencyInjection/AbstractDoctrineExtensionTest.php @@ -348,13 +348,13 @@ public function testLoadMultipleConnections() $this->assertEquals(DoctrineProvider::class, $definition->getClass()); $arguments = $definition->getArguments(); $this->assertInstanceOf(Reference::class, $arguments[0]); - $this->assertEquals('cache.app', (string) $arguments[0]); + $this->assertEquals('cache.doctrine.orm.em1.query', (string) $arguments[0]); $definition = $container->getDefinition((string) $container->getAlias('doctrine.orm.em1_result_cache')); $this->assertEquals(DoctrineProvider::class, $definition->getClass()); $arguments = $definition->getArguments(); $this->assertInstanceOf(Reference::class, $arguments[0]); - $this->assertEquals('cache.app', (string) $arguments[0]); + $this->assertEquals('cache.doctrine.orm.em1.result', (string) $arguments[0]); } public function testLoadLogging() diff --git a/Tests/DependencyInjection/DoctrineExtensionTest.php b/Tests/DependencyInjection/DoctrineExtensionTest.php index 66c45f42e..b4da9721f 100644 --- a/Tests/DependencyInjection/DoctrineExtensionTest.php +++ b/Tests/DependencyInjection/DoctrineExtensionTest.php @@ -326,19 +326,22 @@ public function testDependencyInjectionConfigurationDefaults() $this->assertEquals(DoctrineProvider::class, $definition->getClass()); $arguments = $definition->getArguments(); $this->assertInstanceOf(Reference::class, $arguments[0]); - $this->assertEquals('cache.system', (string) $arguments[0]); + $this->assertEquals('cache.doctrine.orm.default.metadata', (string) $arguments[0]); + $this->assertSame(ArrayAdapter::class, $container->getDefinition((string) $arguments[0])->getClass()); $definition = $container->getDefinition((string) $container->getAlias('doctrine.orm.default_query_cache')); $this->assertEquals(DoctrineProvider::class, $definition->getClass()); $arguments = $definition->getArguments(); $this->assertInstanceOf(Reference::class, $arguments[0]); - $this->assertEquals('cache.app', (string) $arguments[0]); + $this->assertEquals('cache.doctrine.orm.default.query', (string) $arguments[0]); + $this->assertSame(ArrayAdapter::class, $container->getDefinition((string) $arguments[0])->getClass()); $definition = $container->getDefinition((string) $container->getAlias('doctrine.orm.default_result_cache')); $this->assertEquals(DoctrineProvider::class, $definition->getClass()); $arguments = $definition->getArguments(); $this->assertInstanceOf(Reference::class, $arguments[0]); - $this->assertEquals('cache.app', (string) $arguments[0]); + $this->assertEquals('cache.doctrine.orm.default.result', (string) $arguments[0]); + $this->assertSame(ArrayAdapter::class, $container->getDefinition((string) $arguments[0])->getClass()); } public function testUseSavePointsAddMethodCallToAddSavepointsToTheConnection() @@ -775,38 +778,38 @@ public static function cacheConfigurationProvider() : array return [ 'metadata_cache_default' => [ 'expectedAliasName' => 'doctrine.orm.default_metadata_cache', - 'expectedAliasTarget' => 'doctrine.orm.cache.pool.cache.system', + 'expectedAliasTarget' => 'doctrine.orm.cache.provider.cache.doctrine.orm.default.metadata', 'cacheName' => 'metadata_cache_driver', 'cacheConfig' => ['type' => null], ], 'query_cache_default' => [ 'expectedAliasName' => 'doctrine.orm.default_query_cache', - 'expectedAliasTarget' => 'doctrine.orm.cache.pool.cache.app', + 'expectedAliasTarget' => 'doctrine.orm.cache.provider.cache.doctrine.orm.default.query', 'cacheName' => 'query_cache_driver', 'cacheConfig' => ['type' => null], ], 'result_cache_default' => [ 'expectedAliasName' => 'doctrine.orm.default_result_cache', - 'expectedAliasTarget' => 'doctrine.orm.cache.pool.cache.app', + 'expectedAliasTarget' => 'doctrine.orm.cache.provider.cache.doctrine.orm.default.result', 'cacheName' => 'result_cache_driver', 'cacheConfig' => ['type' => null], ], 'metadata_cache_pool' => [ 'expectedAliasName' => 'doctrine.orm.default_metadata_cache', - 'expectedAliasTarget' => 'doctrine.orm.cache.pool.metadata_cache_pool', + 'expectedAliasTarget' => 'doctrine.orm.cache.provider.metadata_cache_pool', 'cacheName' => 'metadata_cache_driver', 'cacheConfig' => ['type' => 'pool', 'pool' => 'metadata_cache_pool'], ], 'query_cache_pool' => [ 'expectedAliasName' => 'doctrine.orm.default_query_cache', - 'expectedAliasTarget' => 'doctrine.orm.cache.pool.query_cache_pool', + 'expectedAliasTarget' => 'doctrine.orm.cache.provider.query_cache_pool', 'cacheName' => 'query_cache_driver', 'cacheConfig' => ['type' => 'pool', 'pool' => 'query_cache_pool'], ], 'result_cache_pool' => [ 'expectedAliasName' => 'doctrine.orm.default_result_cache', - 'expectedAliasTarget' => 'doctrine.orm.cache.pool.result_cache_pool', + 'expectedAliasTarget' => 'doctrine.orm.cache.provider.result_cache_pool', 'cacheName' => 'result_cache_driver', 'cacheConfig' => ['type' => 'pool', 'pool' => 'result_cache_pool'], ], diff --git a/composer.json b/composer.json index c6ca76d2d..a5b621532 100644 --- a/composer.json +++ b/composer.json @@ -29,6 +29,7 @@ "doctrine/dbal": "^2.5.12", "doctrine/doctrine-cache-bundle": "~1.2", "jdorn/sql-formatter": "^1.2.16", + "symfony/cache": "^3.4.30|^4.3.3", "symfony/config": "^3.4.30|^4.3.3", "symfony/console": "^3.4.30|^4.3.3", "symfony/dependency-injection": "^3.4.30|^4.3.3", @@ -40,7 +41,6 @@ "doctrine/orm": "^2.6", "php-coveralls/php-coveralls": "^2.1", "phpunit/phpunit": "^7.5", - "symfony/cache": "^3.4.30|^4.3.3", "symfony/phpunit-bridge": "^4.2", "symfony/property-info": "^3.4.30|^4.3.3", "symfony/twig-bridge": "^3.4|^4.1",