From 0967ec7c4e534b9e6a304e372650e823bc70aba5 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 14:35:02 +0200 Subject: [PATCH 01/43] Update dependencies --- composer.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/composer.json b/composer.json index b9a0751e7..9ee0f6e16 100644 --- a/composer.json +++ b/composer.json @@ -34,10 +34,10 @@ "pagerfanta/pagerfanta": "^2.4 || ^3.0 || ^4.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "ruflin/elastica": "^7.1", - "symfony/console": "^4.4 || ^5.4 || ^6.2", - "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.2", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.2", - "symfony/property-access": "^4.4 || ^5.4 || ^6.2" + "symfony/console": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/property-access": "^4.4 || ^5.4 || ^6.2 || ^7.0" }, "require-dev": { "doctrine/doctrine-bundle": "^2.1.1", @@ -55,12 +55,12 @@ "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-symfony": "^1.2", "phpunit/phpunit": "^9.5", - "symfony/expression-language": "^4.4 || ^5.4 || ^6.2", - "symfony/messenger": "^4.4 || ^5.4 || ^6.2", - "symfony/serializer": "^4.4 || ^5.4 || ^6.2", - "symfony/twig-bundle": "^4.4 || ^5.4 || ^6.2", - "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.2", - "symfony/yaml": "^4.4 || ^5.4 || ^6.2" + "symfony/expression-language": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/messenger": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/serializer": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/twig-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.2 || ^7.0" }, "suggest": { "enqueue/elastica-bundle": "For populating Elasticsearch indexes asynchronously and using significanly less resources. Uses Enqueue.", From 14917c4f986bebc16e615522055a0cc1f91107dc Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 14:39:32 +0200 Subject: [PATCH 02/43] add php 8.3 --- .github/workflows/continuous-integration.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 723545279..bcbc93348 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -40,6 +40,7 @@ jobs: - '7.4' - '8.1' - '8.2' + - '8.3' symfony: - '4.4.*' - '5.4.*' From 6ba485031d322c2fb0e103c380fd6b0136888c8f Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 14:40:26 +0200 Subject: [PATCH 03/43] add symfony 7 to tests --- .github/workflows/continuous-integration.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index bcbc93348..4ca515647 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -45,6 +45,7 @@ jobs: - '4.4.*' - '5.4.*' - '6.2.*' + - '7.0.*' elasticsearch: - '7.11.0' dependencies: @@ -108,6 +109,7 @@ jobs: - '4.4.*' - '5.4.*' - '6.2.*' + - '7.0.*' dependencies: - 'highest' include: From 6e4d89110c5254b92cfa353f5ebabef2155ad10d Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 14:42:16 +0200 Subject: [PATCH 04/43] exclude php 7.4 from tests for symfony 7 --- .github/workflows/continuous-integration.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 4ca515647..c107d5f2f 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -60,6 +60,8 @@ jobs: symfony: '6.2.*' dependencies: 'highest' elasticsearch: '7.11.0' + - php: '7.4' + symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' @@ -120,6 +122,8 @@ jobs: - php: '7.4' symfony: '6.2.*' dependencies: 'highest' + - php: '7.4' + symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' From c36fea76d6ed1b196685dd67258408e33b4ba490 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 14:46:12 +0200 Subject: [PATCH 05/43] Exclude all php versions prior to 8.2 for Symfony 7. Minimum supported Symfony 7 php version is 8.2 https://symfony.com/releases/7.0 --- .github/workflows/continuous-integration.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index c107d5f2f..8e4c5496d 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -62,6 +62,12 @@ jobs: elasticsearch: '7.11.0' - php: '7.4' symfony: '7.0.*' + - php: '8.1' + symfony: '7.0.*' + - php: '8.0' + symfony: '7.0.*' + - php: '8.2' + symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' @@ -124,6 +130,12 @@ jobs: dependencies: 'highest' - php: '7.4' symfony: '7.0.*' + - php: '8.1' + symfony: '7.0.*' + - php: '8.0' + symfony: '7.0.*' + - php: '8.2' + symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' From 5d556fecd3d8e3213c13bee0d27e9c6951d62b92 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 14:47:46 +0200 Subject: [PATCH 06/43] Require minimum doctrine/phpcr-odm 1.5.3. This is the lowest version with support for php 8.* --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 9ee0f6e16..8f99f3212 100644 --- a/composer.json +++ b/composer.json @@ -43,7 +43,7 @@ "doctrine/doctrine-bundle": "^2.1.1", "doctrine/mongodb-odm": "^2.2", "doctrine/orm": "^2.8", - "doctrine/phpcr-odm": "^1.4", + "doctrine/phpcr-odm": "^1.5.3", "ergebnis/composer-normalize": "^2.28", "friendsofphp/php-cs-fixer": "^3.0", "jackalope/jackalope-doctrine-dbal": "^1.2", From 22c8a4cf5ae3cb4d0ee94ad944251e5fb79fa5ce Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:00:49 +0200 Subject: [PATCH 07/43] Exclude php 8.3 symfony 7 lowest dependencies from CI. Higher doctrine/phpcr-odm version should be used for php 8.3 --- .github/workflows/continuous-integration.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 8e4c5496d..36c074d41 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -68,6 +68,9 @@ jobs: symfony: '7.0.*' - php: '8.2' symfony: '7.0.*' + - php: '8.3' + symfony: '7.0.*' + dependencies: 'lowest' fail-fast: false steps: - name: 'Checkout' From 8ebec77338c344ee5459757f429d309102b4d06b Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:05:06 +0200 Subject: [PATCH 08/43] Revert "Exclude php 8.3 symfony 7 lowest dependencies from CI. Higher doctrine/phpcr-odm version should be used for php 8.3" This reverts commit 22c8a4cf5ae3cb4d0ee94ad944251e5fb79fa5ce. --- .github/workflows/continuous-integration.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 36c074d41..8e4c5496d 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -68,9 +68,6 @@ jobs: symfony: '7.0.*' - php: '8.2' symfony: '7.0.*' - - php: '8.3' - symfony: '7.0.*' - dependencies: 'lowest' fail-fast: false steps: - name: 'Checkout' From 724e5ae5537c9024d6010da4e7ac9c23fe6d0315 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:10:28 +0200 Subject: [PATCH 09/43] Run cs fixer --- src/Configuration/ConfigManager.php | 1 + src/Configuration/IndexConfigInterface.php | 1 + src/Configuration/IndexConfigTrait.php | 6 ++++ src/Configuration/Source/ContainerSource.php | 2 ++ src/Configuration/Source/SourceInterface.php | 1 + .../Source/TemplateContainerSource.php | 2 ++ src/Configuration/TypeConfig.php | 3 ++ src/DataCollector/ElasticaDataCollector.php | 6 ---- .../FOSElasticaExtension.php | 2 ++ .../AbstractElasticaToModelTransformer.php | 7 ++-- src/Doctrine/MongoDBPagerProvider.php | 3 -- src/Doctrine/ORMPagerProvider.php | 3 -- src/Doctrine/PHPCRPagerProvider.php | 5 +-- src/Doctrine/RepositoryManager.php | 3 -- src/Elastica/Client.php | 2 -- src/Elastica/IndexTemplate.php | 4 +-- src/Event/AbstractIndexPopulateEvent.php | 3 +- src/Event/AbstractTransformEvent.php | 1 + src/Event/PostIndexMappingBuildEvent.php | 1 + src/Event/PostIndexPopulateEvent.php | 4 +-- src/Event/PostIndexResetEvent.php | 4 +-- src/Event/PostTransformEvent.php | 4 +-- src/Event/PreIndexPopulateEvent.php | 3 -- src/FOSElasticaBundle.php | 2 -- src/Finder/FinderInterface.php | 2 ++ src/Finder/PaginatedFinderInterface.php | 6 ++-- src/Finder/TransformedFinder.php | 29 --------------- src/Index/AliasProcessor.php | 6 ++-- src/Index/IndexTemplateManager.php | 4 +-- src/Logger/ElasticaLogger.php | 2 -- src/Message/AsyncPersistPage.php | 1 + src/Paginator/FantaPaginatorAdapter.php | 3 ++ src/Paginator/HybridPaginatorAdapter.php | 3 -- src/Paginator/HybridPartialResults.php | 3 +- src/Paginator/RawPaginatorAdapter.php | 13 ++----- src/Paginator/RawPartialResults.php | 8 ----- src/Paginator/TransformedPaginatorAdapter.php | 3 -- src/Paginator/TransformedPartialResults.php | 1 + src/Persister/AsyncPagerPersister.php | 3 -- src/Persister/InPlacePagerPersister.php | 3 -- .../Listener/FilterObjectsListener.php | 3 -- src/Persister/ObjectPersister.php | 35 ++++--------------- src/Persister/ObjectSerializerPersister.php | 2 ++ src/Persister/PagerPersisterInterface.php | 1 + src/Provider/Indexable.php | 6 ++-- src/Provider/PagerProviderInterface.php | 1 + src/Provider/PagerfantaPager.php | 18 ---------- src/Repository.php | 5 --- src/Serializer/Callback.php | 3 -- .../HighlightableModelInterface.php | 3 +- .../ModelToElasticaAutoTransformer.php | 5 +-- tests/Functional/ProfilerTest.php | 2 -- tests/Functional/TypeObjectRepository.php | 4 +-- tests/Functional/WebTestCase.php | 2 -- ...AbstractElasticaToModelTransformerTest.php | 20 ----------- .../ORM/ElasticaToModelTransformerTest.php | 3 +- .../PHPCR/ElasticaToModelTransformerTest.php | 3 +- tests/Unit/Doctrine/RepositoryManagerTest.php | 8 ++--- tests/Unit/Index/IndexTemplateManagerTest.php | 1 - tests/Unit/Logger/ElasticaLoggerTest.php | 2 -- tests/Unit/Manager/RepositoryManagerTest.php | 8 ++--- .../DoctrineMongoDBCustomRepositoryMock.php | 4 +-- .../Mocks/DoctrineORMCustomRepositoryMock.php | 4 +-- .../DoctrinePHPCRCustomRepositoryMock.php | 4 +-- tests/Unit/ProphecyTrait.php | 4 +-- tests/Unit/Provider/IndexableTest.php | 9 +---- tests/Unit/Serializer/CallbackTest.php | 4 +-- 67 files changed, 78 insertions(+), 249 deletions(-) diff --git a/src/Configuration/ConfigManager.php b/src/Configuration/ConfigManager.php index 998087fd2..e046d0a10 100644 --- a/src/Configuration/ConfigManager.php +++ b/src/Configuration/ConfigManager.php @@ -18,6 +18,7 @@ class ConfigManager implements ManagerInterface { /** * @var IndexConfig[] + * * @phpstan-var array */ private $indexes = []; diff --git a/src/Configuration/IndexConfigInterface.php b/src/Configuration/IndexConfigInterface.php index 6a2392909..9cbc69135 100644 --- a/src/Configuration/IndexConfigInterface.php +++ b/src/Configuration/IndexConfigInterface.php @@ -69,6 +69,7 @@ public function getNumericDetection(): ?bool; /** * @return string|bool|null + * * @phpstan-return ?TDynamic */ public function getDynamic(); diff --git a/src/Configuration/IndexConfigTrait.php b/src/Configuration/IndexConfigTrait.php index 31f4a1583..d4d25c6a4 100644 --- a/src/Configuration/IndexConfigTrait.php +++ b/src/Configuration/IndexConfigTrait.php @@ -48,21 +48,27 @@ trait IndexConfigTrait * An array of settings sent to ElasticSearch when creating the index. * * @var array + * * @phpstan-var TSettings + * * @phpstan-ignore-next-line Ignored because of a bug in PHPStan (https://github.com/phpstan/phpstan/issues/5091) */ private $settings; /** * @var array + * * @phpstan-var TConfig + * * @phpstan-ignore-next-line Ignored because of a bug in PHPStan (https://github.com/phpstan/phpstan/issues/5091) */ private $config; /** * @var array + * * @phpstan-var TMapping + * * @phpstan-ignore-next-line Ignored because of a bug in PHPStan (https://github.com/phpstan/phpstan/issues/5091) */ private $mapping; diff --git a/src/Configuration/Source/ContainerSource.php b/src/Configuration/Source/ContainerSource.php index 93d57e84f..d0f2f5bc2 100644 --- a/src/Configuration/Source/ContainerSource.php +++ b/src/Configuration/Source/ContainerSource.php @@ -25,6 +25,7 @@ class ContainerSource implements SourceInterface * The internal container representation of information. * * @var array + * * @phpstan-var list */ private $configArray; @@ -41,6 +42,7 @@ public function __construct(array $configArray) * Should return all configuration available from the data source. * * @return IndexConfig[] + * * @phpstan-return array */ public function getConfiguration(): array diff --git a/src/Configuration/Source/SourceInterface.php b/src/Configuration/Source/SourceInterface.php index 35de93e53..61dfa805d 100644 --- a/src/Configuration/Source/SourceInterface.php +++ b/src/Configuration/Source/SourceInterface.php @@ -23,6 +23,7 @@ interface SourceInterface * Should return all configuration available from the data source. * * @return \FOS\ElasticaBundle\Configuration\IndexConfig[] + * * @phpstan-return array */ public function getConfiguration(): array; diff --git a/src/Configuration/Source/TemplateContainerSource.php b/src/Configuration/Source/TemplateContainerSource.php index 6b3a4d338..f943708e9 100644 --- a/src/Configuration/Source/TemplateContainerSource.php +++ b/src/Configuration/Source/TemplateContainerSource.php @@ -25,6 +25,7 @@ class TemplateContainerSource implements SourceInterface * The internal container representation of information. * * @var array + * * @phpstan-var list */ private $configArray; @@ -41,6 +42,7 @@ public function __construct(array $configArray) * Should return all configuration available from the data source. * * @return IndexTemplateConfig[] + * * @phpstan-return array */ public function getConfiguration(): array diff --git a/src/Configuration/TypeConfig.php b/src/Configuration/TypeConfig.php index 71f3063bb..594c80608 100644 --- a/src/Configuration/TypeConfig.php +++ b/src/Configuration/TypeConfig.php @@ -21,12 +21,14 @@ class TypeConfig { /** * @var array + * * @phpstan-var TElasticConfig */ private $config; /** * @var array + * * @phpstan-var TMapping */ private $mapping; @@ -38,6 +40,7 @@ class TypeConfig /** * @param TMapping $mapping + * * @phpstan-param TElasticConfig $config */ public function __construct(string $name, array $mapping, array $config = []) diff --git a/src/DataCollector/ElasticaDataCollector.php b/src/DataCollector/ElasticaDataCollector.php index 327cc8c1e..6e883e9df 100644 --- a/src/DataCollector/ElasticaDataCollector.php +++ b/src/DataCollector/ElasticaDataCollector.php @@ -39,17 +39,11 @@ public function collect(Request $request, Response $response, ?\Throwable $excep $this->data['queries'] = $this->logger->getQueries(); } - /** - * @return mixed - */ public function getQueryCount() { return $this->data['nb_queries']; } - /** - * @return mixed - */ public function getQueries() { return $this->data['queries']; diff --git a/src/DependencyInjection/FOSElasticaExtension.php b/src/DependencyInjection/FOSElasticaExtension.php index 906be6db0..9240039d4 100644 --- a/src/DependencyInjection/FOSElasticaExtension.php +++ b/src/DependencyInjection/FOSElasticaExtension.php @@ -41,6 +41,7 @@ class FOSElasticaExtension extends Extension * An array of indexes as configured by the extension. * * @var array + * * @phpstan-var array */ private $indexConfigs = []; @@ -49,6 +50,7 @@ class FOSElasticaExtension extends Extension * An array of index templates as configured by the extension. * * @var array + * * @phpstan-var array */ private $indexTemplateConfigs = []; diff --git a/src/Doctrine/AbstractElasticaToModelTransformer.php b/src/Doctrine/AbstractElasticaToModelTransformer.php index 574361447..94ec58037 100644 --- a/src/Doctrine/AbstractElasticaToModelTransformer.php +++ b/src/Doctrine/AbstractElasticaToModelTransformer.php @@ -71,9 +71,9 @@ public function getObjectClass(): string * * @param Result[] $elasticaObjects of elastica objects * - * @throws \RuntimeException - * * @return array + * + * @throws \RuntimeException */ public function transform(array $elasticaObjects) { @@ -144,9 +144,6 @@ public function hybridTransform(array $elasticaObjects) return $result; } - /** - * {@inheritdoc} - */ public function getIdentifierField(): string { return $this->options['identifier']; diff --git a/src/Doctrine/MongoDBPagerProvider.php b/src/Doctrine/MongoDBPagerProvider.php index c2efa5616..f9fe54036 100644 --- a/src/Doctrine/MongoDBPagerProvider.php +++ b/src/Doctrine/MongoDBPagerProvider.php @@ -37,9 +37,6 @@ public function __construct( $this->registerListenersService = $registerListenersService; } - /** - * {@inheritdoc} - */ public function provide(array $options = []): PagerInterface { $options = \array_replace($this->baseOptions, $options); diff --git a/src/Doctrine/ORMPagerProvider.php b/src/Doctrine/ORMPagerProvider.php index 259a20da9..b23dc35e4 100644 --- a/src/Doctrine/ORMPagerProvider.php +++ b/src/Doctrine/ORMPagerProvider.php @@ -41,9 +41,6 @@ public function __construct( $this->registerListenersService = $registerListenersService; } - /** - * {@inheritdoc} - */ public function provide(array $options = []): PagerInterface { $options = \array_replace($this->baseOptions, $options); diff --git a/src/Doctrine/PHPCRPagerProvider.php b/src/Doctrine/PHPCRPagerProvider.php index f79cd9b04..a3e7718b8 100644 --- a/src/Doctrine/PHPCRPagerProvider.php +++ b/src/Doctrine/PHPCRPagerProvider.php @@ -55,9 +55,6 @@ public function __construct(ManagerRegistry $doctrine, RegisterListenersService $this->registerListenersService = $registerListenersService; } - /** - * {@inheritdoc} - */ public function provide(array $options = []): PagerInterface { $options = \array_replace($this->baseOptions, $options); @@ -73,7 +70,7 @@ public function provide(array $options = []): PagerInterface $repository = $manager->getRepository($this->objectClass); $adapter = new QueryAdapter( - \call_user_func([$repository, $options['query_builder_method']], static::ENTITY_ALIAS) + \call_user_func([$repository, $options['query_builder_method']], self::ENTITY_ALIAS) ); $pager = new PagerfantaPager(new Pagerfanta($adapter)); diff --git a/src/Doctrine/RepositoryManager.php b/src/Doctrine/RepositoryManager.php index bd3cb85f7..fb10be7a7 100644 --- a/src/Doctrine/RepositoryManager.php +++ b/src/Doctrine/RepositoryManager.php @@ -35,9 +35,6 @@ public function __construct(ManagerRegistry $managerRegistry, RepositoryManagerI $this->repositoryManager = $repositoryManager; } - /** - * {@inheritdoc} - */ public function addIndex(string $indexName, FinderInterface $finder, ?string $repositoryName = null): void { throw new \LogicException(__METHOD__.' should not be called. Call addIndex on the main repository manager'); diff --git a/src/Elastica/Client.php b/src/Elastica/Client.php index e1808949f..c411834f7 100644 --- a/src/Elastica/Client.php +++ b/src/Elastica/Client.php @@ -49,8 +49,6 @@ class Client extends BaseClient private $stopwatch; /** - * {@inheritdoc} - * * @param array $data * @param array $query */ diff --git a/src/Elastica/IndexTemplate.php b/src/Elastica/IndexTemplate.php index 9606294e7..1bd0ae397 100644 --- a/src/Elastica/IndexTemplate.php +++ b/src/Elastica/IndexTemplate.php @@ -18,6 +18,4 @@ * * @author Dmitry Balabka */ -class IndexTemplate extends BaseIndexTemplate -{ -} +class IndexTemplate extends BaseIndexTemplate {} diff --git a/src/Event/AbstractIndexPopulateEvent.php b/src/Event/AbstractIndexPopulateEvent.php index ec1fcb382..a68b6ae8a 100644 --- a/src/Event/AbstractIndexPopulateEvent.php +++ b/src/Event/AbstractIndexPopulateEvent.php @@ -37,6 +37,7 @@ abstract class AbstractIndexPopulateEvent extends AbstractIndexEvent /** * @var array + * * @phpstan-var TOptions */ protected $options; @@ -67,8 +68,6 @@ public function getOptions(): array /** * @throws \InvalidArgumentException if option does not exist - * - * @return mixed */ public function getOption(string $name) { diff --git a/src/Event/AbstractTransformEvent.php b/src/Event/AbstractTransformEvent.php index 844cfeb63..9672d0b70 100644 --- a/src/Event/AbstractTransformEvent.php +++ b/src/Event/AbstractTransformEvent.php @@ -27,6 +27,7 @@ abstract class AbstractTransformEvent extends Event /** * @var array + * * @phpstan-var TFields */ private $fields; diff --git a/src/Event/PostIndexMappingBuildEvent.php b/src/Event/PostIndexMappingBuildEvent.php index 19fb51f0f..f09acd5dc 100644 --- a/src/Event/PostIndexMappingBuildEvent.php +++ b/src/Event/PostIndexMappingBuildEvent.php @@ -25,6 +25,7 @@ final class PostIndexMappingBuildEvent extends AbstractIndexEvent /** * @var array + * * @phpstan-var TMapping */ private $mapping; diff --git a/src/Event/PostIndexPopulateEvent.php b/src/Event/PostIndexPopulateEvent.php index 9837c1095..1cecdf7f5 100644 --- a/src/Event/PostIndexPopulateEvent.php +++ b/src/Event/PostIndexPopulateEvent.php @@ -11,6 +11,4 @@ namespace FOS\ElasticaBundle\Event; -final class PostIndexPopulateEvent extends AbstractIndexPopulateEvent -{ -} +final class PostIndexPopulateEvent extends AbstractIndexPopulateEvent {} diff --git a/src/Event/PostIndexResetEvent.php b/src/Event/PostIndexResetEvent.php index 124000310..622783620 100644 --- a/src/Event/PostIndexResetEvent.php +++ b/src/Event/PostIndexResetEvent.php @@ -11,6 +11,4 @@ namespace FOS\ElasticaBundle\Event; -final class PostIndexResetEvent extends AbstractIndexResetEvent -{ -} +final class PostIndexResetEvent extends AbstractIndexResetEvent {} diff --git a/src/Event/PostTransformEvent.php b/src/Event/PostTransformEvent.php index 0fc4c7870..610cf99a0 100644 --- a/src/Event/PostTransformEvent.php +++ b/src/Event/PostTransformEvent.php @@ -11,6 +11,4 @@ namespace FOS\ElasticaBundle\Event; -final class PostTransformEvent extends AbstractTransformEvent -{ -} +final class PostTransformEvent extends AbstractTransformEvent {} diff --git a/src/Event/PreIndexPopulateEvent.php b/src/Event/PreIndexPopulateEvent.php index 19bb61409..2a4d837f7 100644 --- a/src/Event/PreIndexPopulateEvent.php +++ b/src/Event/PreIndexPopulateEvent.php @@ -13,9 +13,6 @@ final class PreIndexPopulateEvent extends AbstractIndexPopulateEvent { - /** - * @param mixed $value - */ public function setOption(string $name, $value): self { $this->options[$name] = $value; diff --git a/src/FOSElasticaBundle.php b/src/FOSElasticaBundle.php index 03fed3ef9..07bd86a2b 100644 --- a/src/FOSElasticaBundle.php +++ b/src/FOSElasticaBundle.php @@ -19,8 +19,6 @@ class FOSElasticaBundle extends Bundle { /** - * {@inheritdoc} - * * @return void */ public function build(ContainerBuilder $container) diff --git a/src/Finder/FinderInterface.php b/src/Finder/FinderInterface.php index 9d72e26f2..b641feaf1 100644 --- a/src/Finder/FinderInterface.php +++ b/src/Finder/FinderInterface.php @@ -30,9 +30,11 @@ interface FinderInterface * Searches for query results within a given limit. * * @param mixed $query Can be a string, an array or an \Elastica\Query object + * * @phpstan-param TQuery $query * * @param int|null $limit How many results to get + * * @phpstan-param TOptions $options * * @return array results diff --git a/src/Finder/PaginatedFinderInterface.php b/src/Finder/PaginatedFinderInterface.php index f773be6ce..85438f5fa 100644 --- a/src/Finder/PaginatedFinderInterface.php +++ b/src/Finder/PaginatedFinderInterface.php @@ -19,8 +19,10 @@ * @phpstan-import-type TQuery from FinderInterface * * @method Pagerfanta findHybridPaginated(mixed $query) Searches for query hybrid results. + * * @phpstan-method Pagerfanta findHybridPaginated(TQuery $query) * @phpstan-method HybridResult[] findHybrid(TQuery $query, ?int $limit = null, array $options = []) + * * @phpstan-import-type TOptions from FinderInterface */ interface PaginatedFinderInterface extends FinderInterface @@ -29,6 +31,7 @@ interface PaginatedFinderInterface extends FinderInterface * Searches for query results and returns them wrapped in a paginator. * * @param mixed $query Can be a string, an array or an \Elastica\Query object + * * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -39,7 +42,6 @@ public function findPaginated($query, array $options = []); /** * Creates a paginator adapter for this query. * - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -50,7 +52,6 @@ public function createPaginatorAdapter($query, array $options = []); /** * Creates a hybrid paginator adapter for this query. * - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -61,7 +62,6 @@ public function createHybridPaginatorAdapter($query, array $options = []); /** * Creates a raw paginator adapter for this query. * - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * diff --git a/src/Finder/TransformedFinder.php b/src/Finder/TransformedFinder.php index 059860fe6..da4b53b8c 100644 --- a/src/Finder/TransformedFinder.php +++ b/src/Finder/TransformedFinder.php @@ -38,9 +38,6 @@ public function __construct(SearchableInterface $searchable, ElasticaToModelTran $this->transformer = $transformer; } - /** - * {@inheritdoc} - */ public function find($query, ?int $limit = null, array $options = []) { $results = $this->search($query, $limit, $options); @@ -48,9 +45,6 @@ public function find($query, ?int $limit = null, array $options = []) return $this->transformer->transform($results); } - /** - * {@inheritdoc} - */ public function findHybrid($query, ?int $limit = null, array $options = []) { $results = $this->search($query, $limit, $options); @@ -58,17 +52,11 @@ public function findHybrid($query, ?int $limit = null, array $options = []) return $this->transformer->hybridTransform($results); } - /** - * {@inheritdoc} - */ public function findRaw($query, ?int $limit = null, array $options = []): array { return $this->search($query, $limit, $options); } - /** - * {@inheritdoc} - */ public function findPaginated($query, array $options = []) { $paginatorAdapter = $this->createPaginatorAdapter($query, $options); @@ -76,9 +64,6 @@ public function findPaginated($query, array $options = []) return new Pagerfanta(new FantaPaginatorAdapter($paginatorAdapter)); } - /** - * {@inheritdoc} - */ public function findHybridPaginated($query, array $options = []) { $paginatorAdapter = $this->createHybridPaginatorAdapter($query, $options); @@ -86,9 +71,6 @@ public function findHybridPaginated($query, array $options = []) return new Pagerfanta(new FantaPaginatorAdapter($paginatorAdapter)); } - /** - * {@inheritdoc} - */ public function findRawPaginated($query, array $options = []) { $paginatorAdapter = $this->createRawPaginatorAdapter($query, $options); @@ -96,9 +78,6 @@ public function findRawPaginated($query, array $options = []) return new Pagerfanta(new FantaPaginatorAdapter($paginatorAdapter)); } - /** - * {@inheritdoc} - */ public function createPaginatorAdapter($query, array $options = []) { $query = Query::create($query); @@ -106,9 +85,6 @@ public function createPaginatorAdapter($query, array $options = []) return new TransformedPaginatorAdapter($this->searchable, $query, $options, $this->transformer); } - /** - * {@inheritdoc} - */ public function createHybridPaginatorAdapter($query, array $options = []) { $query = Query::create($query); @@ -116,9 +92,6 @@ public function createHybridPaginatorAdapter($query, array $options = []) return new HybridPaginatorAdapter($this->searchable, $query, $options, $this->transformer); } - /** - * {@inheritdoc} - */ public function createRawPaginatorAdapter($query, array $options = []) { $query = Query::create($query); @@ -127,8 +100,6 @@ public function createRawPaginatorAdapter($query, array $options = []) } /** - * @param mixed $query - * * @phpstan-param TQuery $query * @phpstan-param TOptions $options * diff --git a/src/Index/AliasProcessor.php b/src/Index/AliasProcessor.php index fb07ff477..807118353 100644 --- a/src/Index/AliasProcessor.php +++ b/src/Index/AliasProcessor.php @@ -42,9 +42,9 @@ public function setRootName(IndexConfig $indexConfig, Index $index) * * $force will delete an index encountered where an alias is expected. * - * @throws AliasIsIndexException - * * @return void + * + * @throws AliasIsIndexException */ public function switchIndexAlias(IndexConfig $indexConfig, Index $index, bool $force = false, bool $delete = true) { @@ -180,7 +180,7 @@ private function getAliasedIndex(Client $client, string $aliasName): ?string } if (\count($aliasedIndexes) > 1) { - throw new \RuntimeException(\sprintf('Alias "%s" is used for multiple indexes: ["%s"]. Make sure it\'s'.'either not used or is assigned to one index only', $aliasName, \implode('", "', $aliasedIndexes))); + throw new \RuntimeException(\sprintf('Alias "%s" is used for multiple indexes: ["%s"]. Make sure it\'seither not used or is assigned to one index only', $aliasName, \implode('", "', $aliasedIndexes))); } return \array_shift($aliasedIndexes); diff --git a/src/Index/IndexTemplateManager.php b/src/Index/IndexTemplateManager.php index 2b442b47f..75b7c5adc 100644 --- a/src/Index/IndexTemplateManager.php +++ b/src/Index/IndexTemplateManager.php @@ -40,9 +40,9 @@ public function __construct(array $templates) * * @param string $name Index template to return * - * @throws \InvalidArgumentException if no index template exists for the given name - * * @return IndexTemplate + * + * @throws \InvalidArgumentException if no index template exists for the given name */ public function getIndexTemplate($name) { diff --git a/src/Logger/ElasticaLogger.php b/src/Logger/ElasticaLogger.php index acb4285d2..c002fe6c7 100644 --- a/src/Logger/ElasticaLogger.php +++ b/src/Logger/ElasticaLogger.php @@ -106,8 +106,6 @@ public function getQueries(): array } /** - * {@inheritdoc} - * * @param array $context */ public function log($level, $message, array $context = []): void diff --git a/src/Message/AsyncPersistPage.php b/src/Message/AsyncPersistPage.php index a87c460cb..f3373ff9a 100644 --- a/src/Message/AsyncPersistPage.php +++ b/src/Message/AsyncPersistPage.php @@ -25,6 +25,7 @@ class AsyncPersistPage /** * @var array + * * @phpstan-var TOptions */ private $options; diff --git a/src/Paginator/FantaPaginatorAdapter.php b/src/Paginator/FantaPaginatorAdapter.php index 4d0371375..ee7628bea 100644 --- a/src/Paginator/FantaPaginatorAdapter.php +++ b/src/Paginator/FantaPaginatorAdapter.php @@ -15,18 +15,21 @@ /** * @template T + * * @implements AdapterInterface */ class FantaPaginatorAdapter implements AdapterInterface { /** * @var PaginatorAdapterInterface + * * @phpstan-ignore-next-line todo: make PaginatorAdapterInterface generic */ private $adapter; /** * @param PaginatorAdapterInterface $adapter + * * @phpstan-ignore-next-line todo: make PaginatorAdapterInterface generic */ public function __construct(PaginatorAdapterInterface $adapter) diff --git a/src/Paginator/HybridPaginatorAdapter.php b/src/Paginator/HybridPaginatorAdapter.php index a6669413e..49b58a1bd 100644 --- a/src/Paginator/HybridPaginatorAdapter.php +++ b/src/Paginator/HybridPaginatorAdapter.php @@ -34,9 +34,6 @@ public function __construct(SearchableInterface $searchable, Query $query, array $this->transformer = $transformer; } - /** - * {@inheritdoc} - */ public function getResults($offset, $length) { return new HybridPartialResults($this->getElasticaResults($offset, $length), $this->transformer); diff --git a/src/Paginator/HybridPartialResults.php b/src/Paginator/HybridPartialResults.php index ab9bba0fa..1670b3470 100644 --- a/src/Paginator/HybridPartialResults.php +++ b/src/Paginator/HybridPartialResults.php @@ -33,9 +33,8 @@ public function __construct(ResultSet $resultSet, ElasticaToModelTransformerInte } /** - * {@inheritdoc} - * * @return list + * * @phpstan-ignore-next-line */ public function toArray(): array diff --git a/src/Paginator/RawPaginatorAdapter.php b/src/Paginator/RawPaginatorAdapter.php index a7d9ea818..a6e679775 100644 --- a/src/Paginator/RawPaginatorAdapter.php +++ b/src/Paginator/RawPaginatorAdapter.php @@ -69,9 +69,6 @@ public function __construct(SearchableInterface $searchable, Query $query, array $this->options = $options; } - /** - * {@inheritdoc} - */ public function getResults($offset, $itemCountPerPage) { return new RawPartialResults($this->getElasticaResults($offset, $itemCountPerPage)); @@ -99,9 +96,6 @@ public function getTotalHits($genuineTotal = false) : $this->totalHits; } - /** - * {@inheritdoc} - */ public function getAggregations() { if (!isset($this->aggregations)) { @@ -111,9 +105,6 @@ public function getAggregations() return $this->aggregations; } - /** - * {@inheritdoc} - */ public function getSuggests() { if (!isset($this->suggests)) { @@ -151,9 +142,9 @@ public function getQuery() * @param int $offset * @param int $itemCountPerPage * - * @throws \InvalidArgumentException - * * @return ResultSet + * + * @throws \InvalidArgumentException */ protected function getElasticaResults($offset, $itemCountPerPage) { diff --git a/src/Paginator/RawPartialResults.php b/src/Paginator/RawPartialResults.php index 8cb54b57b..ded118bdd 100644 --- a/src/Paginator/RawPartialResults.php +++ b/src/Paginator/RawPartialResults.php @@ -30,8 +30,6 @@ public function __construct(ResultSet $resultSet) } /** - * {@inheritdoc} - * * @return list> */ public function toArray(): array @@ -41,17 +39,11 @@ public function toArray(): array }, $this->resultSet->getResults()); } - /** - * {@inheritdoc} - */ public function getTotalHits(): int { return $this->resultSet->getTotalHits(); } - /** - * {@inheritdoc} - */ public function getAggregations(): array { return $this->resultSet->getAggregations(); diff --git a/src/Paginator/TransformedPaginatorAdapter.php b/src/Paginator/TransformedPaginatorAdapter.php index 070ecfe4d..5008af5fb 100644 --- a/src/Paginator/TransformedPaginatorAdapter.php +++ b/src/Paginator/TransformedPaginatorAdapter.php @@ -34,9 +34,6 @@ public function __construct(SearchableInterface $searchable, Query $query, array $this->transformer = $transformer; } - /** - * {@inheritdoc} - */ public function getResults($offset, $length) { return new TransformedPartialResults($this->getElasticaResults($offset, $length), $this->transformer); diff --git a/src/Paginator/TransformedPartialResults.php b/src/Paginator/TransformedPartialResults.php index abf0a7884..ec2c1251d 100644 --- a/src/Paginator/TransformedPartialResults.php +++ b/src/Paginator/TransformedPartialResults.php @@ -33,6 +33,7 @@ public function __construct(ResultSet $resultSet, ElasticaToModelTransformerInte /** * @return list + * * @phpstan-ignore-next-line */ public function toArray(): array diff --git a/src/Persister/AsyncPagerPersister.php b/src/Persister/AsyncPagerPersister.php index 61152e3d1..ae0b45ec4 100644 --- a/src/Persister/AsyncPagerPersister.php +++ b/src/Persister/AsyncPagerPersister.php @@ -49,9 +49,6 @@ public function __construct( $this->messageBus = $messageBus; } - /** - * {@inheritdoc} - */ public function insert(PagerInterface $pager, array $options = []): void { $pager->setMaxPerPage(empty($options['max_per_page']) ? self::DEFAULT_PAGE_SIZE : $options['max_per_page']); diff --git a/src/Persister/InPlacePagerPersister.php b/src/Persister/InPlacePagerPersister.php index 4766027e0..678df0d5f 100644 --- a/src/Persister/InPlacePagerPersister.php +++ b/src/Persister/InPlacePagerPersister.php @@ -36,9 +36,6 @@ public function __construct(PersisterRegistry $registry, EventDispatcherInterfac $this->dispatcher = $dispatcher; } - /** - * {@inheritdoc} - */ public function insert(PagerInterface $pager, array $options = []) { $pager->setMaxPerPage(empty($options['max_per_page']) ? 100 : $options['max_per_page']); diff --git a/src/Persister/Listener/FilterObjectsListener.php b/src/Persister/Listener/FilterObjectsListener.php index 15fed5e4e..9399a1b01 100644 --- a/src/Persister/Listener/FilterObjectsListener.php +++ b/src/Persister/Listener/FilterObjectsListener.php @@ -47,9 +47,6 @@ public function filterObjects(PreInsertObjectsEvent $event): void $event->setObjects($filtered); } - /** - * {@inheritdoc} - */ public static function getSubscribedEvents(): array { return [ diff --git a/src/Persister/ObjectPersister.php b/src/Persister/ObjectPersister.php index 8f37564cd..ab7e4ebf7 100644 --- a/src/Persister/ObjectPersister.php +++ b/src/Persister/ObjectPersister.php @@ -24,6 +24,7 @@ * @author Thibault Duplessis * * @phpstan-type TOptions = array + * * @phpstan-import-type TFields from ModelToElasticaTransformerInterface * * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html for TOptions description @@ -44,6 +45,7 @@ class ObjectPersister implements ObjectPersisterInterface protected $objectClass; /** * @var array + * * @phpstan-var TFields */ protected $fields; @@ -53,12 +55,14 @@ class ObjectPersister implements ObjectPersisterInterface protected $logger; /** * @var array + * * @phpstan-var TOptions */ private $options; /** * @param class-string $objectClass + * * @phpstan-param TFields $fields * @phpstan-param TOptions $options */ @@ -71,9 +75,6 @@ public function __construct(Index $index, ModelToElasticaTransformerInterface $t $this->options = $options; } - /** - * {@inheritdoc} - */ public function handlesObject($object): bool { return $object instanceof $this->objectClass; @@ -87,41 +88,26 @@ public function setLogger(LoggerInterface $logger) $this->logger = $logger; } - /** - * {@inheritdoc} - */ public function insertOne($object) { $this->insertMany([$object]); } - /** - * {@inheritdoc} - */ public function replaceOne($object) { $this->replaceMany([$object]); } - /** - * {@inheritdoc} - */ public function deleteOne($object) { $this->deleteMany([$object]); } - /** - * {@inheritdoc} - */ public function deleteById($id, $routing = false) { $this->deleteManyByIdentifiers([$id], $routing); } - /** - * {@inheritdoc} - */ public function insertMany(array $objects) { $documents = []; @@ -135,9 +121,6 @@ public function insertMany(array $objects) } } - /** - * {@inheritdoc} - */ public function replaceMany(array $objects) { $documents = []; @@ -154,9 +137,6 @@ public function replaceMany(array $objects) } } - /** - * {@inheritdoc} - */ public function deleteMany(array $objects) { $documents = []; @@ -170,9 +150,6 @@ public function deleteMany(array $objects) } } - /** - * {@inheritdoc} - */ public function deleteManyByIdentifiers(array $identifiers, $routing = false) { try { @@ -193,9 +170,9 @@ public function transformToElasticaDocument(object $object): Document /** * Log exception if logger defined for persister belonging to the current listener, otherwise re-throw. * - * @throws BulkException - * * @return void + * + * @throws BulkException */ private function log(BulkException $e) { diff --git a/src/Persister/ObjectSerializerPersister.php b/src/Persister/ObjectSerializerPersister.php index da36a509e..1bbecfc18 100644 --- a/src/Persister/ObjectSerializerPersister.php +++ b/src/Persister/ObjectSerializerPersister.php @@ -28,12 +28,14 @@ class ObjectSerializerPersister extends ObjectPersister { /** * @var callable + * * @phpstan-var TSerializer */ protected $serializer; /** * @param callable $serializer + * * @phpstan-param TSerializer $serializer */ public function __construct(Index $index, ModelToElasticaTransformerInterface $transformer, string $objectClass, $serializer, array $options = []) diff --git a/src/Persister/PagerPersisterInterface.php b/src/Persister/PagerPersisterInterface.php index c8b7347e9..55b8f50c2 100644 --- a/src/Persister/PagerPersisterInterface.php +++ b/src/Persister/PagerPersisterInterface.php @@ -16,6 +16,7 @@ /** * @phpstan-import-type TOptions from AbstractIndexPopulateEvent + * * @phpstan-type TPagerPersisterOptions = TOptions|array{} */ interface PagerPersisterInterface diff --git a/src/Provider/Indexable.php b/src/Provider/Indexable.php index c1cffb010..a02bc360c 100644 --- a/src/Provider/Indexable.php +++ b/src/Provider/Indexable.php @@ -25,6 +25,7 @@ class Indexable implements IndexableInterface * An array of raw configured callbacks for all types. * * @var array + * * @phpstan-var array */ private $callbacks = []; @@ -40,6 +41,7 @@ class Indexable implements IndexableInterface * An array of initialised callbacks. * * @var array + * * @phpstan-var array */ private $initialisedCallbacks = []; @@ -77,6 +79,7 @@ public function isObjectIndexable(string $indexName, object $object): bool * Builds and initialises a callback. * * @return callable|string|ExpressionLanguage|null + * * @phpstan-return TCallbackInternal */ private function buildCallback(string $index, object $object) @@ -124,7 +127,6 @@ private function buildExpressionCallback(string $index, object $object, string $ /** * Retreives a cached callback, or creates a new callback if one is not found. * - * @return mixed * @phpstan-return TCallbackInternal */ private function getCallback(string $index, object $object) @@ -153,8 +155,6 @@ private function getExpressionLanguage(): ?ExpressionLanguage /** * Returns the variable name to be used to access the object when using the ExpressionLanguage * component to parse and evaluate an expression. - * - * @param mixed $object */ private function getExpressionVar($object = null): string { diff --git a/src/Provider/PagerProviderInterface.php b/src/Provider/PagerProviderInterface.php index 759d3875f..7ce737227 100644 --- a/src/Provider/PagerProviderInterface.php +++ b/src/Provider/PagerProviderInterface.php @@ -15,6 +15,7 @@ /** * @phpstan-import-type TOptions from AbstractIndexPopulateEvent + * * @phpstan-type TPagerProviderOptions = TOptions|array */ interface PagerProviderInterface diff --git a/src/Provider/PagerfantaPager.php b/src/Provider/PagerfantaPager.php index e11132c32..e8f8437d5 100644 --- a/src/Provider/PagerfantaPager.php +++ b/src/Provider/PagerfantaPager.php @@ -31,49 +31,31 @@ public function __construct(Pagerfanta $pagerfanta) $this->pagerfanta = $pagerfanta; } - /** - * {@inheritdoc} - */ public function getNbResults(): int { return $this->pagerfanta->getNbResults(); } - /** - * {@inheritdoc} - */ public function getNbPages(): int { return $this->pagerfanta->getNbPages(); } - /** - * {@inheritdoc} - */ public function getCurrentPage(): int { return $this->pagerfanta->getCurrentPage(); } - /** - * {@inheritdoc} - */ public function setCurrentPage(int $page) { $this->pagerfanta->setCurrentPage($page); } - /** - * {@inheritdoc} - */ public function getMaxPerPage(): int { return $this->pagerfanta->getMaxPerPage(); } - /** - * {@inheritdoc} - */ public function setMaxPerPage(int $perPage) { $this->pagerfanta->setMaxPerPage($perPage); diff --git a/src/Repository.php b/src/Repository.php index b40b4f79c..2ae3f1bb1 100644 --- a/src/Repository.php +++ b/src/Repository.php @@ -33,7 +33,6 @@ public function __construct(PaginatedFinderInterface $finder) } /** - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -45,7 +44,6 @@ public function find($query, ?int $limit = null, array $options = []) } /** - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -57,7 +55,6 @@ public function findHybrid($query, ?int $limit = null, array $options = []) } /** - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -69,7 +66,6 @@ public function findPaginated($query, array $options = []) } /** - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * @@ -81,7 +77,6 @@ public function createPaginatorAdapter($query, array $options = []) } /** - * @param mixed $query * @phpstan-param TQuery $query * @phpstan-param TOptions $options * diff --git a/src/Serializer/Callback.php b/src/Serializer/Callback.php index 6d7c53042..27f6b6134 100644 --- a/src/Serializer/Callback.php +++ b/src/Serializer/Callback.php @@ -81,9 +81,6 @@ public function setSerializeNull(bool $serializeNull): self return $this; } - /** - * @param mixed $object - */ public function serialize($object): string { $context = $this->serializer instanceof JMSSerializer ? SerializationContext::create()->enableMaxDepthChecks() : []; diff --git a/src/Transformer/HighlightableModelInterface.php b/src/Transformer/HighlightableModelInterface.php index e49d0c3a9..7df8e4b01 100644 --- a/src/Transformer/HighlightableModelInterface.php +++ b/src/Transformer/HighlightableModelInterface.php @@ -20,8 +20,6 @@ interface HighlightableModelInterface { /** * Returns a unique identifier for the model. - * - * @return mixed */ public function getId(); @@ -29,6 +27,7 @@ public function getId(); * Set ElasticSearch highlight data. * * @param array $highlights array of highlight strings + * * @phpstan-param list $highlights * * @return void diff --git a/src/Transformer/ModelToElasticaAutoTransformer.php b/src/Transformer/ModelToElasticaAutoTransformer.php index 2e9a8746c..49dcb7613 100644 --- a/src/Transformer/ModelToElasticaAutoTransformer.php +++ b/src/Transformer/ModelToElasticaAutoTransformer.php @@ -23,6 +23,7 @@ * elastica documents ids and doctrine object ids. * * @phpstan-import-type TFields from ModelToElasticaTransformerInterface + * * @phpstan-type TOptions = array{identifier: string, index: string} */ class ModelToElasticaAutoTransformer implements ModelToElasticaTransformerInterface @@ -36,6 +37,7 @@ class ModelToElasticaAutoTransformer implements ModelToElasticaTransformerInterf * Optional parameters. * * @var array + * * @phpstan-var TOptions */ protected $options = [ @@ -84,6 +86,7 @@ public function transform(object $object, array $fields): Document * * @param array|\Traversable|\ArrayAccess|null $objects the object to convert * @param array $fields the keys we want to have in the returned array + * * @phpstan-param TFields $fields * * @return array @@ -112,8 +115,6 @@ protected function transformNested($objects, array $fields): ?array /** * Attempts to convert any type to a string or an array of strings. * - * @param mixed $value - * * @return string|list */ protected function normalizeValue($value) diff --git a/tests/Functional/ProfilerTest.php b/tests/Functional/ProfilerTest.php index f0c69ea22..e1cfc5799 100644 --- a/tests/Functional/ProfilerTest.php +++ b/tests/Functional/ProfilerTest.php @@ -68,8 +68,6 @@ public function setUp(): void /** * @dataProvider queryProvider - * - * @param mixed $query */ public function testRender($query) { diff --git a/tests/Functional/TypeObjectRepository.php b/tests/Functional/TypeObjectRepository.php index 12d94067c..eb3233a06 100644 --- a/tests/Functional/TypeObjectRepository.php +++ b/tests/Functional/TypeObjectRepository.php @@ -13,6 +13,4 @@ use FOS\ElasticaBundle\Repository; -class TypeObjectRepository extends Repository -{ -} +class TypeObjectRepository extends Repository {} diff --git a/tests/Functional/WebTestCase.php b/tests/Functional/WebTestCase.php index 88e41424b..492a10787 100644 --- a/tests/Functional/WebTestCase.php +++ b/tests/Functional/WebTestCase.php @@ -74,8 +74,6 @@ protected static function getVarDir() /** * To be removed when dropping support of Symfony < 5.3. - * - * @param mixed $arguments */ public static function __callStatic(string $name, $arguments) { diff --git a/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php b/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php index da4bf4f79..cedc461a1 100644 --- a/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php +++ b/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php @@ -98,9 +98,6 @@ public function resultsWithMatchingObjects() /** * @dataProvider resultsWithMatchingObjects - * - * @param mixed $elasticaResults - * @param mixed $doctrineObjects */ public function testObjectsAreTransformedByFindingThemByTheirIdentifiers($elasticaResults, $doctrineObjects) { @@ -120,9 +117,6 @@ public function testObjectsAreTransformedByFindingThemByTheirIdentifiers($elasti /** * @dataProvider resultsWithMatchingObjects - * - * @param mixed $elasticaResults - * @param mixed $doctrineObjects */ public function testAnExceptionIsThrownWhenTheNumberOfFoundObjectsIsLessThanTheNumberOfResults( $elasticaResults, @@ -145,9 +139,6 @@ public function testAnExceptionIsThrownWhenTheNumberOfFoundObjectsIsLessThanTheN /** * @dataProvider resultsWithMatchingObjects - * - * @param mixed $elasticaResults - * @param mixed $doctrineObjects */ public function testAnExceptionIsNotThrownWhenTheNumberOfFoundObjectsIsLessThanTheNumberOfResultsIfOptionSet( $elasticaResults, @@ -169,9 +160,6 @@ public function testAnExceptionIsNotThrownWhenTheNumberOfFoundObjectsIsLessThanT /** * @dataProvider resultsWithMatchingObjects - * - * @param mixed $elasticaResults - * @param mixed $doctrineObjects */ public function testHighlightsAreSetOnTransformedObjects($elasticaResults, $doctrineObjects) { @@ -194,9 +182,6 @@ public function testHighlightsAreSetOnTransformedObjects($elasticaResults, $doct /** * @dataProvider resultsWithMatchingObjects - * - * @param mixed $elasticaResults - * @param mixed $doctrineObjects */ public function testResultsAreSortedByIdentifier($elasticaResults, $doctrineObjects) { @@ -220,9 +205,6 @@ public function testResultsAreSortedByIdentifier($elasticaResults, $doctrineObje /** * @dataProvider resultsWithMatchingObjects - * - * @param mixed $elasticaResults - * @param mixed $doctrineObjects */ public function testHybridTransformReturnsDecoratedResults($elasticaResults, $doctrineObjects) { @@ -270,8 +252,6 @@ private function createMockPropertyAccessor() } /** - * @param mixed $options - * * @return \PHPUnit\Framework\MockObject\MockObject|AbstractElasticaToModelTransformer */ private function createMockTransformer($options = []) diff --git a/tests/Unit/Doctrine/ORM/ElasticaToModelTransformerTest.php b/tests/Unit/Doctrine/ORM/ElasticaToModelTransformerTest.php index 412dcf1cc..d0a5df9dc 100644 --- a/tests/Unit/Doctrine/ORM/ElasticaToModelTransformerTest.php +++ b/tests/Unit/Doctrine/ORM/ElasticaToModelTransformerTest.php @@ -63,7 +63,8 @@ protected function setUp(): void 'findBy', 'findOneBy', 'getClassName', - ])->getMock(); + ])->getMock() + ; $this->manager->expects($this->any()) ->method('getRepository') diff --git a/tests/Unit/Doctrine/PHPCR/ElasticaToModelTransformerTest.php b/tests/Unit/Doctrine/PHPCR/ElasticaToModelTransformerTest.php index 664f719ef..a23db113c 100644 --- a/tests/Unit/Doctrine/PHPCR/ElasticaToModelTransformerTest.php +++ b/tests/Unit/Doctrine/PHPCR/ElasticaToModelTransformerTest.php @@ -66,7 +66,8 @@ protected function setUp(): void 'findOneBy', 'getClassName', 'findMany', - ])->getMock(); + ])->getMock() + ; $this->repository->expects($this->any()) ->method('findMany') diff --git a/tests/Unit/Doctrine/RepositoryManagerTest.php b/tests/Unit/Doctrine/RepositoryManagerTest.php index a94884d7c..2886e74a9 100644 --- a/tests/Unit/Doctrine/RepositoryManagerTest.php +++ b/tests/Unit/Doctrine/RepositoryManagerTest.php @@ -18,13 +18,9 @@ use FOS\ElasticaBundle\Repository; use PHPUnit\Framework\TestCase; -class CustomRepository -{ -} +class CustomRepository {} -class NamespacedEntity -{ -} +class NamespacedEntity {} /** * @author Richard Miller diff --git a/tests/Unit/Index/IndexTemplateManagerTest.php b/tests/Unit/Index/IndexTemplateManagerTest.php index e83ea519c..442fd49b0 100644 --- a/tests/Unit/Index/IndexTemplateManagerTest.php +++ b/tests/Unit/Index/IndexTemplateManagerTest.php @@ -26,7 +26,6 @@ class IndexTemplateManagerTest extends TestCase * Test get index template. * * @param string $name - * @param mixed $expectedTemplate * @param string|null $expectedException * * @return void diff --git a/tests/Unit/Logger/ElasticaLoggerTest.php b/tests/Unit/Logger/ElasticaLoggerTest.php index 550938297..3e65f692a 100644 --- a/tests/Unit/Logger/ElasticaLoggerTest.php +++ b/tests/Unit/Logger/ElasticaLoggerTest.php @@ -125,8 +125,6 @@ public function logLevels() /** * @dataProvider logLevels - * - * @param mixed $level */ public function testMessagesCanBeLoggedAtSpecificLogLevels($level) { diff --git a/tests/Unit/Manager/RepositoryManagerTest.php b/tests/Unit/Manager/RepositoryManagerTest.php index 7072117de..8feb7c5c0 100644 --- a/tests/Unit/Manager/RepositoryManagerTest.php +++ b/tests/Unit/Manager/RepositoryManagerTest.php @@ -16,13 +16,9 @@ use FOS\ElasticaBundle\Repository; use PHPUnit\Framework\TestCase; -class CustomRepository extends Repository -{ -} +class CustomRepository extends Repository {} -class Entity -{ -} +class Entity {} /** * @author Richard Miller diff --git a/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php b/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php index 93205eb18..f63d6a691 100644 --- a/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php +++ b/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php @@ -15,7 +15,5 @@ class DoctrineMongoDBCustomRepositoryMock extends DocumentRepository { - public function createCustomQueryBuilder() - { - } + public function createCustomQueryBuilder() {} } diff --git a/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php b/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php index 81f65d2b8..40b469375 100644 --- a/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php +++ b/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php @@ -15,7 +15,5 @@ class DoctrineORMCustomRepositoryMock extends EntityRepository { - public function createCustomQueryBuilder() - { - } + public function createCustomQueryBuilder() {} } diff --git a/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php b/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php index 4dba935fb..0cf423483 100644 --- a/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php +++ b/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php @@ -15,7 +15,5 @@ class DoctrinePHPCRCustomRepositoryMock extends DocumentRepository { - public function createCustomQueryBuilder() - { - } + public function createCustomQueryBuilder() {} } diff --git a/tests/Unit/ProphecyTrait.php b/tests/Unit/ProphecyTrait.php index 38f24515b..58972a54a 100644 --- a/tests/Unit/ProphecyTrait.php +++ b/tests/Unit/ProphecyTrait.php @@ -19,7 +19,5 @@ trait ProphecyTrait use BaseProphecyTrait; } } else { - trait ProphecyTrait - { - } + trait ProphecyTrait {} } diff --git a/tests/Unit/Provider/IndexableTest.php b/tests/Unit/Provider/IndexableTest.php index 81318a19d..efd837524 100644 --- a/tests/Unit/Provider/IndexableTest.php +++ b/tests/Unit/Provider/IndexableTest.php @@ -29,9 +29,6 @@ public function testIndexableUnknown() /** * @dataProvider provideIsIndexableCallbacks - * - * @param mixed $callback - * @param mixed $return */ public function testValidIndexableCallbacks($callback, $return) { @@ -45,8 +42,6 @@ public function testValidIndexableCallbacks($callback, $return) /** * @dataProvider provideInvalidIsIndexableCallbacks - * - * @param mixed $callback */ public function testInvalidIsIndexableCallbacks($callback) { @@ -113,7 +108,5 @@ public function isIndexable(Entity $entity) return !$entity->isIndexable(); } - protected function internalMethod() - { - } + protected function internalMethod() {} } diff --git a/tests/Unit/Serializer/CallbackTest.php b/tests/Unit/Serializer/CallbackTest.php index 5c956d538..0d168900e 100644 --- a/tests/Unit/Serializer/CallbackTest.php +++ b/tests/Unit/Serializer/CallbackTest.php @@ -54,7 +54,5 @@ public function testSetGroupsFailsWithInvalidSerializer() class FakeSerializer { - public function serialize() - { - } + public function serialize() {} } From 916337aa8e98e9262e6dbb11697326fc5ca0b204 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:13:46 +0200 Subject: [PATCH 10/43] fix code style --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 8f99f3212..d968ce29b 100644 --- a/composer.json +++ b/composer.json @@ -78,8 +78,8 @@ }, "config": { "allow-plugins": { - "phpstan/extension-installer": true, - "ergebnis/composer-normalize": true + "ergebnis/composer-normalize": true, + "phpstan/extension-installer": true } }, "extra": { From 1a637b193d90b6acdb19d4b12055aa7f5fb395ba Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:15:51 +0200 Subject: [PATCH 11/43] fix a suddenly excluded case --- .github/workflows/continuous-integration.yaml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 8e4c5496d..024e61393 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -66,8 +66,6 @@ jobs: symfony: '7.0.*' - php: '8.0' symfony: '7.0.*' - - php: '8.2' - symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' @@ -134,8 +132,6 @@ jobs: symfony: '7.0.*' - php: '8.0' symfony: '7.0.*' - - php: '8.2' - symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' From 6b889afdff56ceb0dbc8185b4acd01c8a84179f8 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:23:37 +0200 Subject: [PATCH 12/43] Lock to symfony/console@^6.1 because of issue with doctrine/phpcr-odm as described in https://github.com/FriendsOfSymfony/FOSElasticaBundle/pull/1933#issuecomment-1838740050 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d968ce29b..c766663f8 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "pagerfanta/pagerfanta": "^2.4 || ^3.0 || ^4.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "ruflin/elastica": "^7.1", - "symfony/console": "^4.4 || ^5.4 || ^6.2 || ^7.0", + "symfony/console": "^4.4 || ^5.4 || ^6.2", "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.2 || ^7.0", "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", "symfony/property-access": "^4.4 || ^5.4 || ^6.2 || ^7.0" From 5621661c34df458bc35c7f7acefbf17cbc46482c Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:27:15 +0200 Subject: [PATCH 13/43] run cs fixer --- src/Provider/Indexable.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Provider/Indexable.php b/src/Provider/Indexable.php index a02bc360c..4558ba718 100644 --- a/src/Provider/Indexable.php +++ b/src/Provider/Indexable.php @@ -155,6 +155,8 @@ private function getExpressionLanguage(): ?ExpressionLanguage /** * Returns the variable name to be used to access the object when using the ExpressionLanguage * component to parse and evaluate an expression. + * + * @param mixed|null $object */ private function getExpressionVar($object = null): string { From 7450153a91fea682cac4097ff59ed17ce632910b Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:30:24 +0200 Subject: [PATCH 14/43] Bump jms/serializer-bundle to v5 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index c766663f8..33efae520 100644 --- a/composer.json +++ b/composer.json @@ -48,7 +48,7 @@ "friendsofphp/php-cs-fixer": "^3.0", "jackalope/jackalope-doctrine-dbal": "^1.2", "jms/serializer": "^3.8", - "jms/serializer-bundle": "^3.5 || ^4.0", + "jms/serializer-bundle": "^3.5 || ^4.0 || ^5.0", "knplabs/knp-components": "^2.4 || ^3.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.4", From 953d5d430ffdcf0bcbb59d86a0b86ffb3605a885 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:40:08 +0200 Subject: [PATCH 15/43] Remove jms/serializer-bundle v3 support because php 7.2 has reached an end of life https://www.php.net/supported-versions.php --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 33efae520..b1b9b362d 100644 --- a/composer.json +++ b/composer.json @@ -48,7 +48,7 @@ "friendsofphp/php-cs-fixer": "^3.0", "jackalope/jackalope-doctrine-dbal": "^1.2", "jms/serializer": "^3.8", - "jms/serializer-bundle": "^3.5 || ^4.0 || ^5.0", + "jms/serializer-bundle": "^4.0 || ^5.0", "knplabs/knp-components": "^2.4 || ^3.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.4", From 8f43f710156f9bc476eccc617b45913bfb906501 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 16:47:33 +0200 Subject: [PATCH 16/43] add php 8.3 to phpstan --- .github/workflows/continuous-integration.yaml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 024e61393..30caef032 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -62,10 +62,10 @@ jobs: elasticsearch: '7.11.0' - php: '7.4' symfony: '7.0.*' - - php: '8.1' - symfony: '7.0.*' - php: '8.0' symfony: '7.0.*' + - php: '8.1' + symfony: '7.0.*' fail-fast: false steps: - name: 'Checkout' @@ -111,6 +111,7 @@ jobs: - '7.4' - '8.1' - '8.2' + - '8.3' symfony: - '4.4.*' - '5.4.*' @@ -128,10 +129,11 @@ jobs: dependencies: 'highest' - php: '7.4' symfony: '7.0.*' - - php: '8.1' - symfony: '7.0.*' - php: '8.0' symfony: '7.0.*' + - php: '8.1' + symfony: '7.0.*' + fail-fast: false steps: - name: 'Checkout' From a6e0a932df468d29bfb86e033e5c58b6b588bb1c Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 19:45:01 +0200 Subject: [PATCH 17/43] Update all Symfony references to ^6.3 --- .github/workflows/continuous-integration.yaml | 9 ++++----- composer.json | 20 +++++++++---------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 30caef032..e8f309b3c 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -44,7 +44,7 @@ jobs: symfony: - '4.4.*' - '5.4.*' - - '6.2.*' + - '6.3.*' - '7.0.*' elasticsearch: - '7.11.0' @@ -55,9 +55,8 @@ jobs: elasticsearch: '7.0.0' dependencies: 'lowest' symfony: '4.4.*' - exclude: - php: '7.4' - symfony: '6.2.*' + symfony: '6.3.*' dependencies: 'highest' elasticsearch: '7.11.0' - php: '7.4' @@ -115,7 +114,7 @@ jobs: symfony: - '4.4.*' - '5.4.*' - - '6.2.*' + - '6.3.*' - '7.0.*' dependencies: - 'highest' @@ -125,7 +124,7 @@ jobs: symfony: '4.4.*' exclude: - php: '7.4' - symfony: '6.2.*' + symfony: '6.3.*' dependencies: 'highest' - php: '7.4' symfony: '7.0.*' diff --git a/composer.json b/composer.json index b1b9b362d..a8c92dfa8 100644 --- a/composer.json +++ b/composer.json @@ -34,10 +34,10 @@ "pagerfanta/pagerfanta": "^2.4 || ^3.0 || ^4.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "ruflin/elastica": "^7.1", - "symfony/console": "^4.4 || ^5.4 || ^6.2", - "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/property-access": "^4.4 || ^5.4 || ^6.2 || ^7.0" + "symfony/console": "^4.4 || ^5.4 || ^6.3", + "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0" }, "require-dev": { "doctrine/doctrine-bundle": "^2.1.1", @@ -55,12 +55,12 @@ "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-symfony": "^1.2", "phpunit/phpunit": "^9.5", - "symfony/expression-language": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/messenger": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/serializer": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/twig-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.2 || ^7.0", - "symfony/yaml": "^4.4 || ^5.4 || ^6.2 || ^7.0" + "symfony/expression-language": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/messenger": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/serializer": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/twig-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/yaml": "^4.4 || ^5.4 || ^6.3 || ^7.0" }, "suggest": { "enqueue/elastica-bundle": "For populating Elasticsearch indexes asynchronously and using significanly less resources. Uses Enqueue.", From d47ae8e70419e6e62872c484c247e7a6b9de4b61 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 19:46:13 +0200 Subject: [PATCH 18/43] Add symfony/console 7.0 to dependencies. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a8c92dfa8..62ebf8287 100644 --- a/composer.json +++ b/composer.json @@ -34,7 +34,7 @@ "pagerfanta/pagerfanta": "^2.4 || ^3.0 || ^4.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "ruflin/elastica": "^7.1", - "symfony/console": "^4.4 || ^5.4 || ^6.3", + "symfony/console": "^4.4 || ^5.4 || ^6.3 || ^7.0", "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.3 || ^7.0", "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0" From 35ac8e6c96db4b7e6bc0ce4ec4ca6ff55b45b771 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 20:10:29 +0200 Subject: [PATCH 19/43] Normalize continuous integration matrix. --- .github/workflows/continuous-integration.yaml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index e8f309b3c..ef2b62a74 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -50,17 +50,12 @@ jobs: - '7.11.0' dependencies: - 'highest' - include: - - php: '7.4' - elasticsearch: '7.0.0' - dependencies: 'lowest' - symfony: '4.4.*' - - php: '7.4' - symfony: '6.3.*' - dependencies: 'highest' - elasticsearch: '7.11.0' + - 'lowest' + exclude: - php: '7.4' symfony: '7.0.*' + - php: '7.4' + symfony: '6.0.*' - php: '8.0' symfony: '7.0.*' - php: '8.1' @@ -123,11 +118,10 @@ jobs: dependencies: 'lowest' symfony: '4.4.*' exclude: - - php: '7.4' - symfony: '6.3.*' - dependencies: 'highest' - php: '7.4' symfony: '7.0.*' + - php: '7.4' + symfony: '6.0.*' - php: '8.0' symfony: '7.0.*' - php: '8.1' From 92f62e1e30014b89c1c8691b1d478bc02f5b1054 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Mon, 4 Dec 2023 20:14:47 +0200 Subject: [PATCH 20/43] Normalize continuous integration matrix. --- .github/workflows/continuous-integration.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index ef2b62a74..5eba41810 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -50,16 +50,17 @@ jobs: - '7.11.0' dependencies: - 'highest' - - 'lowest' exclude: - php: '7.4' symfony: '7.0.*' - php: '7.4' - symfony: '6.0.*' + symfony: '6.3.*' - php: '8.0' symfony: '7.0.*' - php: '8.1' symfony: '7.0.*' + - php: '8.1' + symfony: '4.4.*' fail-fast: false steps: - name: 'Checkout' @@ -121,11 +122,13 @@ jobs: - php: '7.4' symfony: '7.0.*' - php: '7.4' - symfony: '6.0.*' + symfony: '6.3.*' - php: '8.0' symfony: '7.0.*' - php: '8.1' symfony: '7.0.*' + - php: '8.1' + symfony: '4.4.*' fail-fast: false steps: From 5d393febd9173d4d5e0201029e2cf0c34dcd2a45 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Tue, 12 Dec 2023 18:59:17 +0200 Subject: [PATCH 21/43] update gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5fdf87b7c..dfe21afc1 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ composer.phar .php-cs-fixer.php .php-cs-fixer.cache .phpunit.result.cache +.idea From c8652ab329e27281daebcf24caa0db174d6ce800 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Tue, 30 Jan 2024 11:53:42 +0200 Subject: [PATCH 22/43] fix gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index dfe21afc1..5fdf87b7c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,3 @@ composer.phar .php-cs-fixer.php .php-cs-fixer.cache .phpunit.result.cache -.idea From 78d403eec0d4887978a48fde0a63b096b24259d2 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Tue, 30 Jan 2024 12:01:17 +0200 Subject: [PATCH 23/43] fix typo --- src/Index/AliasProcessor.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Index/AliasProcessor.php b/src/Index/AliasProcessor.php index 807118353..9f62e33bc 100644 --- a/src/Index/AliasProcessor.php +++ b/src/Index/AliasProcessor.php @@ -180,7 +180,7 @@ private function getAliasedIndex(Client $client, string $aliasName): ?string } if (\count($aliasedIndexes) > 1) { - throw new \RuntimeException(\sprintf('Alias "%s" is used for multiple indexes: ["%s"]. Make sure it\'seither not used or is assigned to one index only', $aliasName, \implode('", "', $aliasedIndexes))); + throw new \RuntimeException(\sprintf('Alias "%s" is used for multiple indexes: ["%s"]. Make sure it\'s either not used or is assigned to one index only', $aliasName, \implode('", "', $aliasedIndexes))); } return \array_shift($aliasedIndexes); From c48f5f830f41c85a4cc1c3911cb54d87547f8a75 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 15:59:02 +0200 Subject: [PATCH 24/43] Replace php-cs-fixer with a shim version. It allows us to lock with any desired version without the need to update the rest of dependencies. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 62ebf8287..1f2338dc7 100644 --- a/composer.json +++ b/composer.json @@ -40,12 +40,12 @@ "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0" }, "require-dev": { + "php-cs-fixer/shim": "^3.8.0", "doctrine/doctrine-bundle": "^2.1.1", "doctrine/mongodb-odm": "^2.2", "doctrine/orm": "^2.8", "doctrine/phpcr-odm": "^1.5.3", "ergebnis/composer-normalize": "^2.28", - "friendsofphp/php-cs-fixer": "^3.0", "jackalope/jackalope-doctrine-dbal": "^1.2", "jms/serializer": "^3.8", "jms/serializer-bundle": "^4.0 || ^5.0", From f773e123d0690ca97998c42ba72508b13fb6c51c Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 15:59:41 +0200 Subject: [PATCH 25/43] Run php-cs-fixer with locked version 3.8.0. --- src/Elastica/IndexTemplate.php | 4 +++- src/Event/PostIndexPopulateEvent.php | 4 +++- src/Event/PostIndexResetEvent.php | 4 +++- src/Event/PostTransformEvent.php | 4 +++- tests/Functional/TypeObjectRepository.php | 4 +++- tests/Unit/Doctrine/RepositoryManagerTest.php | 8 ++++++-- tests/Unit/Manager/RepositoryManagerTest.php | 8 ++++++-- tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php | 4 +++- tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php | 4 +++- tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php | 4 +++- tests/Unit/ProphecyTrait.php | 4 +++- tests/Unit/Provider/IndexableTest.php | 4 +++- tests/Unit/Serializer/CallbackTest.php | 4 +++- 13 files changed, 45 insertions(+), 15 deletions(-) diff --git a/src/Elastica/IndexTemplate.php b/src/Elastica/IndexTemplate.php index 1bd0ae397..9606294e7 100644 --- a/src/Elastica/IndexTemplate.php +++ b/src/Elastica/IndexTemplate.php @@ -18,4 +18,6 @@ * * @author Dmitry Balabka */ -class IndexTemplate extends BaseIndexTemplate {} +class IndexTemplate extends BaseIndexTemplate +{ +} diff --git a/src/Event/PostIndexPopulateEvent.php b/src/Event/PostIndexPopulateEvent.php index 1cecdf7f5..9837c1095 100644 --- a/src/Event/PostIndexPopulateEvent.php +++ b/src/Event/PostIndexPopulateEvent.php @@ -11,4 +11,6 @@ namespace FOS\ElasticaBundle\Event; -final class PostIndexPopulateEvent extends AbstractIndexPopulateEvent {} +final class PostIndexPopulateEvent extends AbstractIndexPopulateEvent +{ +} diff --git a/src/Event/PostIndexResetEvent.php b/src/Event/PostIndexResetEvent.php index 622783620..124000310 100644 --- a/src/Event/PostIndexResetEvent.php +++ b/src/Event/PostIndexResetEvent.php @@ -11,4 +11,6 @@ namespace FOS\ElasticaBundle\Event; -final class PostIndexResetEvent extends AbstractIndexResetEvent {} +final class PostIndexResetEvent extends AbstractIndexResetEvent +{ +} diff --git a/src/Event/PostTransformEvent.php b/src/Event/PostTransformEvent.php index 610cf99a0..0fc4c7870 100644 --- a/src/Event/PostTransformEvent.php +++ b/src/Event/PostTransformEvent.php @@ -11,4 +11,6 @@ namespace FOS\ElasticaBundle\Event; -final class PostTransformEvent extends AbstractTransformEvent {} +final class PostTransformEvent extends AbstractTransformEvent +{ +} diff --git a/tests/Functional/TypeObjectRepository.php b/tests/Functional/TypeObjectRepository.php index eb3233a06..12d94067c 100644 --- a/tests/Functional/TypeObjectRepository.php +++ b/tests/Functional/TypeObjectRepository.php @@ -13,4 +13,6 @@ use FOS\ElasticaBundle\Repository; -class TypeObjectRepository extends Repository {} +class TypeObjectRepository extends Repository +{ +} diff --git a/tests/Unit/Doctrine/RepositoryManagerTest.php b/tests/Unit/Doctrine/RepositoryManagerTest.php index 2886e74a9..a94884d7c 100644 --- a/tests/Unit/Doctrine/RepositoryManagerTest.php +++ b/tests/Unit/Doctrine/RepositoryManagerTest.php @@ -18,9 +18,13 @@ use FOS\ElasticaBundle\Repository; use PHPUnit\Framework\TestCase; -class CustomRepository {} +class CustomRepository +{ +} -class NamespacedEntity {} +class NamespacedEntity +{ +} /** * @author Richard Miller diff --git a/tests/Unit/Manager/RepositoryManagerTest.php b/tests/Unit/Manager/RepositoryManagerTest.php index 8feb7c5c0..7072117de 100644 --- a/tests/Unit/Manager/RepositoryManagerTest.php +++ b/tests/Unit/Manager/RepositoryManagerTest.php @@ -16,9 +16,13 @@ use FOS\ElasticaBundle\Repository; use PHPUnit\Framework\TestCase; -class CustomRepository extends Repository {} +class CustomRepository extends Repository +{ +} -class Entity {} +class Entity +{ +} /** * @author Richard Miller diff --git a/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php b/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php index f63d6a691..93205eb18 100644 --- a/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php +++ b/tests/Unit/Mocks/DoctrineMongoDBCustomRepositoryMock.php @@ -15,5 +15,7 @@ class DoctrineMongoDBCustomRepositoryMock extends DocumentRepository { - public function createCustomQueryBuilder() {} + public function createCustomQueryBuilder() + { + } } diff --git a/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php b/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php index 40b469375..81f65d2b8 100644 --- a/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php +++ b/tests/Unit/Mocks/DoctrineORMCustomRepositoryMock.php @@ -15,5 +15,7 @@ class DoctrineORMCustomRepositoryMock extends EntityRepository { - public function createCustomQueryBuilder() {} + public function createCustomQueryBuilder() + { + } } diff --git a/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php b/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php index 0cf423483..4dba935fb 100644 --- a/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php +++ b/tests/Unit/Mocks/DoctrinePHPCRCustomRepositoryMock.php @@ -15,5 +15,7 @@ class DoctrinePHPCRCustomRepositoryMock extends DocumentRepository { - public function createCustomQueryBuilder() {} + public function createCustomQueryBuilder() + { + } } diff --git a/tests/Unit/ProphecyTrait.php b/tests/Unit/ProphecyTrait.php index 58972a54a..38f24515b 100644 --- a/tests/Unit/ProphecyTrait.php +++ b/tests/Unit/ProphecyTrait.php @@ -19,5 +19,7 @@ trait ProphecyTrait use BaseProphecyTrait; } } else { - trait ProphecyTrait {} + trait ProphecyTrait + { + } } diff --git a/tests/Unit/Provider/IndexableTest.php b/tests/Unit/Provider/IndexableTest.php index efd837524..c42c2aaed 100644 --- a/tests/Unit/Provider/IndexableTest.php +++ b/tests/Unit/Provider/IndexableTest.php @@ -108,5 +108,7 @@ public function isIndexable(Entity $entity) return !$entity->isIndexable(); } - protected function internalMethod() {} + protected function internalMethod() + { + } } diff --git a/tests/Unit/Serializer/CallbackTest.php b/tests/Unit/Serializer/CallbackTest.php index 0d168900e..5c956d538 100644 --- a/tests/Unit/Serializer/CallbackTest.php +++ b/tests/Unit/Serializer/CallbackTest.php @@ -54,5 +54,7 @@ public function testSetGroupsFailsWithInvalidSerializer() class FakeSerializer { - public function serialize() {} + public function serialize() + { + } } From a85750b89f48bb257e2b98a030de7146edc3aba5 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:03:09 +0200 Subject: [PATCH 26/43] Add support for doctrine/phpcr-odm 2-beta release. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 1f2338dc7..b85951184 100644 --- a/composer.json +++ b/composer.json @@ -44,7 +44,7 @@ "doctrine/doctrine-bundle": "^2.1.1", "doctrine/mongodb-odm": "^2.2", "doctrine/orm": "^2.8", - "doctrine/phpcr-odm": "^1.5.3", + "doctrine/phpcr-odm": "^1.5.3 || ^2.0.0-beta2", "ergebnis/composer-normalize": "^2.28", "jackalope/jackalope-doctrine-dbal": "^1.2", "jms/serializer": "^3.8", From 7d4a0d6ca5f48979d2aadd956a0b358b767236b9 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:11:25 +0200 Subject: [PATCH 27/43] Cs fixer fix --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b85951184..9fe995ed7 100644 --- a/composer.json +++ b/composer.json @@ -40,7 +40,6 @@ "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0" }, "require-dev": { - "php-cs-fixer/shim": "^3.8.0", "doctrine/doctrine-bundle": "^2.1.1", "doctrine/mongodb-odm": "^2.2", "doctrine/orm": "^2.8", @@ -50,6 +49,7 @@ "jms/serializer": "^3.8", "jms/serializer-bundle": "^4.0 || ^5.0", "knplabs/knp-components": "^2.4 || ^3.0", + "php-cs-fixer/shim": "^3.8.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1.1", From b5d922ba2c8b7bba3e5548992b9052bffa0b5c49 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:12:48 +0200 Subject: [PATCH 28/43] Bump knplabs/knp-components --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 9fe995ed7..bb52615bd 100644 --- a/composer.json +++ b/composer.json @@ -48,7 +48,7 @@ "jackalope/jackalope-doctrine-dbal": "^1.2", "jms/serializer": "^3.8", "jms/serializer-bundle": "^4.0 || ^5.0", - "knplabs/knp-components": "^2.4 || ^3.0", + "knplabs/knp-components": "^2.4 || ^3.0 || ^4.0", "php-cs-fixer/shim": "^3.8.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.4", From e69a18602cfabeacef617a0c0e60bea79d49cde0 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:14:10 +0200 Subject: [PATCH 29/43] Fix php cs fixer version. --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index bb52615bd..d1d3e483f 100644 --- a/composer.json +++ b/composer.json @@ -49,7 +49,7 @@ "jms/serializer": "^3.8", "jms/serializer-bundle": "^4.0 || ^5.0", "knplabs/knp-components": "^2.4 || ^3.0 || ^4.0", - "php-cs-fixer/shim": "^3.8.0", + "php-cs-fixer/shim": "v3.8.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1.1", From 1f31f717680845e380a5473d2248305a599ed280 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:16:18 +0200 Subject: [PATCH 30/43] CS Fixer fixes with version 3.8.0. --- .../AbstractElasticaToModelTransformer.php | 4 ++-- src/Finder/PaginatedFinderInterface.php | 6 ++++++ src/Finder/TransformedFinder.php | 2 ++ src/Index/AliasProcessor.php | 4 ++-- src/Index/IndexTemplateManager.php | 4 ++-- src/Logger/ElasticaLogger.php | 2 ++ src/Paginator/RawPaginatorAdapter.php | 4 ++-- src/Persister/ObjectPersister.php | 4 ++-- src/Repository.php | 10 ++++++++++ .../ModelToElasticaAutoTransformer.php | 2 ++ tests/Functional/ProfilerTest.php | 2 ++ tests/Functional/WebTestCase.php | 2 ++ ...AbstractElasticaToModelTransformerTest.php | 20 +++++++++++++++++++ tests/Unit/Index/IndexTemplateManagerTest.php | 1 + tests/Unit/Logger/ElasticaLoggerTest.php | 2 ++ tests/Unit/Provider/IndexableTest.php | 5 +++++ 16 files changed, 64 insertions(+), 10 deletions(-) diff --git a/src/Doctrine/AbstractElasticaToModelTransformer.php b/src/Doctrine/AbstractElasticaToModelTransformer.php index 94ec58037..a2ab964fd 100644 --- a/src/Doctrine/AbstractElasticaToModelTransformer.php +++ b/src/Doctrine/AbstractElasticaToModelTransformer.php @@ -71,9 +71,9 @@ public function getObjectClass(): string * * @param Result[] $elasticaObjects of elastica objects * - * @return array - * * @throws \RuntimeException + * + * @return array */ public function transform(array $elasticaObjects) { diff --git a/src/Finder/PaginatedFinderInterface.php b/src/Finder/PaginatedFinderInterface.php index 85438f5fa..44c3518f1 100644 --- a/src/Finder/PaginatedFinderInterface.php +++ b/src/Finder/PaginatedFinderInterface.php @@ -45,6 +45,8 @@ public function findPaginated($query, array $options = []); * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return PaginatorAdapterInterface */ public function createPaginatorAdapter($query, array $options = []); @@ -55,6 +57,8 @@ public function createPaginatorAdapter($query, array $options = []); * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return PaginatorAdapterInterface */ public function createHybridPaginatorAdapter($query, array $options = []); @@ -65,6 +69,8 @@ public function createHybridPaginatorAdapter($query, array $options = []); * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return PaginatorAdapterInterface */ public function createRawPaginatorAdapter($query, array $options = []); diff --git a/src/Finder/TransformedFinder.php b/src/Finder/TransformedFinder.php index da4b53b8c..3294d597f 100644 --- a/src/Finder/TransformedFinder.php +++ b/src/Finder/TransformedFinder.php @@ -103,6 +103,8 @@ public function createRawPaginatorAdapter($query, array $options = []) * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return Result[] */ protected function search($query, ?int $limit = null, array $options = []) diff --git a/src/Index/AliasProcessor.php b/src/Index/AliasProcessor.php index 9f62e33bc..d8b2c74a3 100644 --- a/src/Index/AliasProcessor.php +++ b/src/Index/AliasProcessor.php @@ -42,9 +42,9 @@ public function setRootName(IndexConfig $indexConfig, Index $index) * * $force will delete an index encountered where an alias is expected. * - * @return void - * * @throws AliasIsIndexException + * + * @return void */ public function switchIndexAlias(IndexConfig $indexConfig, Index $index, bool $force = false, bool $delete = true) { diff --git a/src/Index/IndexTemplateManager.php b/src/Index/IndexTemplateManager.php index 75b7c5adc..2b442b47f 100644 --- a/src/Index/IndexTemplateManager.php +++ b/src/Index/IndexTemplateManager.php @@ -40,9 +40,9 @@ public function __construct(array $templates) * * @param string $name Index template to return * - * @return IndexTemplate - * * @throws \InvalidArgumentException if no index template exists for the given name + * + * @return IndexTemplate */ public function getIndexTemplate($name) { diff --git a/src/Logger/ElasticaLogger.php b/src/Logger/ElasticaLogger.php index c002fe6c7..e477d08e8 100644 --- a/src/Logger/ElasticaLogger.php +++ b/src/Logger/ElasticaLogger.php @@ -107,6 +107,8 @@ public function getQueries(): array /** * @param array $context + * @param mixed $level + * @param mixed $message */ public function log($level, $message, array $context = []): void { diff --git a/src/Paginator/RawPaginatorAdapter.php b/src/Paginator/RawPaginatorAdapter.php index a6e679775..05d8e86d7 100644 --- a/src/Paginator/RawPaginatorAdapter.php +++ b/src/Paginator/RawPaginatorAdapter.php @@ -142,9 +142,9 @@ public function getQuery() * @param int $offset * @param int $itemCountPerPage * - * @return ResultSet - * * @throws \InvalidArgumentException + * + * @return ResultSet */ protected function getElasticaResults($offset, $itemCountPerPage) { diff --git a/src/Persister/ObjectPersister.php b/src/Persister/ObjectPersister.php index ab7e4ebf7..8ef9edfb9 100644 --- a/src/Persister/ObjectPersister.php +++ b/src/Persister/ObjectPersister.php @@ -170,9 +170,9 @@ public function transformToElasticaDocument(object $object): Document /** * Log exception if logger defined for persister belonging to the current listener, otherwise re-throw. * - * @return void - * * @throws BulkException + * + * @return void */ private function log(BulkException $e) { diff --git a/src/Repository.php b/src/Repository.php index 2ae3f1bb1..479d885aa 100644 --- a/src/Repository.php +++ b/src/Repository.php @@ -36,6 +36,8 @@ public function __construct(PaginatedFinderInterface $finder) * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return array */ public function find($query, ?int $limit = null, array $options = []) @@ -47,6 +49,8 @@ public function find($query, ?int $limit = null, array $options = []) * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return list */ public function findHybrid($query, ?int $limit = null, array $options = []) @@ -58,6 +62,8 @@ public function findHybrid($query, ?int $limit = null, array $options = []) * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return \Pagerfanta\Pagerfanta */ public function findPaginated($query, array $options = []) @@ -69,6 +75,8 @@ public function findPaginated($query, array $options = []) * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return Paginator\PaginatorAdapterInterface */ public function createPaginatorAdapter($query, array $options = []) @@ -80,6 +88,8 @@ public function createPaginatorAdapter($query, array $options = []) * @phpstan-param TQuery $query * @phpstan-param TOptions $options * + * @param mixed $query + * * @return Paginator\PaginatorAdapterInterface */ public function createHybridPaginatorAdapter($query, array $options = []) diff --git a/src/Transformer/ModelToElasticaAutoTransformer.php b/src/Transformer/ModelToElasticaAutoTransformer.php index 49dcb7613..b804c5fd8 100644 --- a/src/Transformer/ModelToElasticaAutoTransformer.php +++ b/src/Transformer/ModelToElasticaAutoTransformer.php @@ -115,6 +115,8 @@ protected function transformNested($objects, array $fields): ?array /** * Attempts to convert any type to a string or an array of strings. * + * @param mixed $value + * * @return string|list */ protected function normalizeValue($value) diff --git a/tests/Functional/ProfilerTest.php b/tests/Functional/ProfilerTest.php index e1cfc5799..f0c69ea22 100644 --- a/tests/Functional/ProfilerTest.php +++ b/tests/Functional/ProfilerTest.php @@ -68,6 +68,8 @@ public function setUp(): void /** * @dataProvider queryProvider + * + * @param mixed $query */ public function testRender($query) { diff --git a/tests/Functional/WebTestCase.php b/tests/Functional/WebTestCase.php index 492a10787..88e41424b 100644 --- a/tests/Functional/WebTestCase.php +++ b/tests/Functional/WebTestCase.php @@ -74,6 +74,8 @@ protected static function getVarDir() /** * To be removed when dropping support of Symfony < 5.3. + * + * @param mixed $arguments */ public static function __callStatic(string $name, $arguments) { diff --git a/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php b/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php index cedc461a1..da4bf4f79 100644 --- a/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php +++ b/tests/Unit/Doctrine/AbstractElasticaToModelTransformerTest.php @@ -98,6 +98,9 @@ public function resultsWithMatchingObjects() /** * @dataProvider resultsWithMatchingObjects + * + * @param mixed $elasticaResults + * @param mixed $doctrineObjects */ public function testObjectsAreTransformedByFindingThemByTheirIdentifiers($elasticaResults, $doctrineObjects) { @@ -117,6 +120,9 @@ public function testObjectsAreTransformedByFindingThemByTheirIdentifiers($elasti /** * @dataProvider resultsWithMatchingObjects + * + * @param mixed $elasticaResults + * @param mixed $doctrineObjects */ public function testAnExceptionIsThrownWhenTheNumberOfFoundObjectsIsLessThanTheNumberOfResults( $elasticaResults, @@ -139,6 +145,9 @@ public function testAnExceptionIsThrownWhenTheNumberOfFoundObjectsIsLessThanTheN /** * @dataProvider resultsWithMatchingObjects + * + * @param mixed $elasticaResults + * @param mixed $doctrineObjects */ public function testAnExceptionIsNotThrownWhenTheNumberOfFoundObjectsIsLessThanTheNumberOfResultsIfOptionSet( $elasticaResults, @@ -160,6 +169,9 @@ public function testAnExceptionIsNotThrownWhenTheNumberOfFoundObjectsIsLessThanT /** * @dataProvider resultsWithMatchingObjects + * + * @param mixed $elasticaResults + * @param mixed $doctrineObjects */ public function testHighlightsAreSetOnTransformedObjects($elasticaResults, $doctrineObjects) { @@ -182,6 +194,9 @@ public function testHighlightsAreSetOnTransformedObjects($elasticaResults, $doct /** * @dataProvider resultsWithMatchingObjects + * + * @param mixed $elasticaResults + * @param mixed $doctrineObjects */ public function testResultsAreSortedByIdentifier($elasticaResults, $doctrineObjects) { @@ -205,6 +220,9 @@ public function testResultsAreSortedByIdentifier($elasticaResults, $doctrineObje /** * @dataProvider resultsWithMatchingObjects + * + * @param mixed $elasticaResults + * @param mixed $doctrineObjects */ public function testHybridTransformReturnsDecoratedResults($elasticaResults, $doctrineObjects) { @@ -252,6 +270,8 @@ private function createMockPropertyAccessor() } /** + * @param mixed $options + * * @return \PHPUnit\Framework\MockObject\MockObject|AbstractElasticaToModelTransformer */ private function createMockTransformer($options = []) diff --git a/tests/Unit/Index/IndexTemplateManagerTest.php b/tests/Unit/Index/IndexTemplateManagerTest.php index 442fd49b0..973588e43 100644 --- a/tests/Unit/Index/IndexTemplateManagerTest.php +++ b/tests/Unit/Index/IndexTemplateManagerTest.php @@ -27,6 +27,7 @@ class IndexTemplateManagerTest extends TestCase * * @param string $name * @param string|null $expectedException + * @param mixed $expectedTemplate * * @return void * diff --git a/tests/Unit/Logger/ElasticaLoggerTest.php b/tests/Unit/Logger/ElasticaLoggerTest.php index 3e65f692a..550938297 100644 --- a/tests/Unit/Logger/ElasticaLoggerTest.php +++ b/tests/Unit/Logger/ElasticaLoggerTest.php @@ -125,6 +125,8 @@ public function logLevels() /** * @dataProvider logLevels + * + * @param mixed $level */ public function testMessagesCanBeLoggedAtSpecificLogLevels($level) { diff --git a/tests/Unit/Provider/IndexableTest.php b/tests/Unit/Provider/IndexableTest.php index c42c2aaed..81318a19d 100644 --- a/tests/Unit/Provider/IndexableTest.php +++ b/tests/Unit/Provider/IndexableTest.php @@ -29,6 +29,9 @@ public function testIndexableUnknown() /** * @dataProvider provideIsIndexableCallbacks + * + * @param mixed $callback + * @param mixed $return */ public function testValidIndexableCallbacks($callback, $return) { @@ -42,6 +45,8 @@ public function testValidIndexableCallbacks($callback, $return) /** * @dataProvider provideInvalidIsIndexableCallbacks + * + * @param mixed $callback */ public function testInvalidIsIndexableCallbacks($callback) { From 25c8b101aa2e4b1a523d063baa06ff3dd3b05a57 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:20:32 +0200 Subject: [PATCH 31/43] Add symfony/stopwatch because it's required by project --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index d1d3e483f..0f6cf1978 100644 --- a/composer.json +++ b/composer.json @@ -37,7 +37,8 @@ "symfony/console": "^4.4 || ^5.4 || ^6.3 || ^7.0", "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.3 || ^7.0", "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0" + "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0", + "symfony/stopwatch": "^4.4 || ^5.4 || ^6.3 || ^7.0" }, "require-dev": { "doctrine/doctrine-bundle": "^2.1.1", From bb351e8e4761c27302f088e66b88b06a9b1c8830 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:23:06 +0200 Subject: [PATCH 32/43] Bumb jackalope/jackalope-doctrine-dbal to RC-1 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 0f6cf1978..037904a41 100644 --- a/composer.json +++ b/composer.json @@ -46,7 +46,7 @@ "doctrine/orm": "^2.8", "doctrine/phpcr-odm": "^1.5.3 || ^2.0.0-beta2", "ergebnis/composer-normalize": "^2.28", - "jackalope/jackalope-doctrine-dbal": "^1.2", + "jackalope/jackalope-doctrine-dbal": "^1.2 || ^2.0.0-RC1", "jms/serializer": "^3.8", "jms/serializer-bundle": "^4.0 || ^5.0", "knplabs/knp-components": "^2.4 || ^3.0 || ^4.0", From 4320d34b7ae7a0d8fb5adf5085c12cebc3198602 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 16:37:43 +0200 Subject: [PATCH 33/43] Normalize composer --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 037904a41..f67ab2761 100644 --- a/composer.json +++ b/composer.json @@ -50,7 +50,7 @@ "jms/serializer": "^3.8", "jms/serializer-bundle": "^4.0 || ^5.0", "knplabs/knp-components": "^2.4 || ^3.0 || ^4.0", - "php-cs-fixer/shim": "v3.8.0", + "php-cs-fixer/shim": "3.8.0", "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.4", "phpstan/phpstan-phpunit": "^1.1", From 015463c2f1a302db73d378474e2f49f0fa153b08 Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 29 Feb 2024 18:36:04 +0200 Subject: [PATCH 34/43] Disable symfony testing with php 8.2 and 8.3 --- .github/workflows/continuous-integration.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index 5eba41810..b8cb03bd1 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -61,6 +61,10 @@ jobs: symfony: '7.0.*' - php: '8.1' symfony: '4.4.*' + - php: '8.2' + symfony: '4.4.*' + - php: '8.3' + symfony: '4.4.*' fail-fast: false steps: - name: 'Checkout' From 5d308434f82874998fe2f9ca20b585c218aebe8e Mon Sep 17 00:00:00 2001 From: Liakhovskyi Vladyslav Date: Thu, 7 Mar 2024 15:50:34 +0200 Subject: [PATCH 35/43] minimum stability RC --- composer.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/composer.json b/composer.json index f67ab2761..04d0abe01 100644 --- a/composer.json +++ b/composer.json @@ -10,6 +10,8 @@ "mongodb", "search" ], + "minimum-stability": "RC", + "prefer-stable": true, "authors": [ { "name": "FriendsOfSymfony Community", From 3b7042c573b2c575fb2784fad861d50df72d4f64 Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 10:16:17 +0100 Subject: [PATCH 36/43] [cs] Fix composer.json --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 04d0abe01..3c09f7248 100644 --- a/composer.json +++ b/composer.json @@ -10,8 +10,6 @@ "mongodb", "search" ], - "minimum-stability": "RC", - "prefer-stable": true, "authors": [ { "name": "FriendsOfSymfony Community", @@ -69,6 +67,8 @@ "enqueue/elastica-bundle": "For populating Elasticsearch indexes asynchronously and using significanly less resources. Uses Enqueue.", "symfony/messenger": "For populating Elasticsearch indexes asynchronously and using significanly less resources." }, + "minimum-stability": "RC", + "prefer-stable": true, "autoload": { "psr-4": { "FOS\\ElasticaBundle\\": "src/" From 05df890a7773d15c5dbc3dec29983b6bfe2b47bd Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 10:19:03 +0100 Subject: [PATCH 37/43] [phpunit] Fix 'framework.annotations' error --- tests/Functional/app/config/config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/Functional/app/config/config.yml b/tests/Functional/app/config/config.yml index 5ea4ce562..e871cb8f6 100644 --- a/tests/Functional/app/config/config.yml +++ b/tests/Functional/app/config/config.yml @@ -1,7 +1,6 @@ framework: test: true secret: secret - annotations: ~ services: logger: { class: Psr\Log\NullLogger } From 8f1d7f8ae36dd7e426588e10f07be8c8f99525e2 Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 10:31:34 +0100 Subject: [PATCH 38/43] [phpunit] Fix 'getAliasNamespace' error --- src/Doctrine/RepositoryManager.php | 7 ++++++- tests/Unit/Doctrine/RepositoryManagerTest.php | 19 +++++++++++-------- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/Doctrine/RepositoryManager.php b/src/Doctrine/RepositoryManager.php index fb10be7a7..572803865 100644 --- a/src/Doctrine/RepositoryManager.php +++ b/src/Doctrine/RepositoryManager.php @@ -55,7 +55,12 @@ public function getRepository(string $entityName): Repository $realEntityName = $entityName; if (false !== \strpos($entityName, ':')) { [$namespaceAlias, $simpleClassName] = \explode(':', $entityName); - $realEntityName = $this->managerRegistry->getAliasNamespace($namespaceAlias).'\\'.$simpleClassName; + // @link https://github.com/doctrine/persistence/pull/204 + if (\method_exists($this->managerRegistry, 'getAliasNamespace')) { + $realEntityName = $this->managerRegistry->getAliasNamespace($namespaceAlias).'\\'.$simpleClassName; + } else { + $realEntityName = $simpleClassName.'::class'; + } } if (isset($this->entities[$realEntityName])) { diff --git a/tests/Unit/Doctrine/RepositoryManagerTest.php b/tests/Unit/Doctrine/RepositoryManagerTest.php index a94884d7c..3faf80fa9 100644 --- a/tests/Unit/Doctrine/RepositoryManagerTest.php +++ b/tests/Unit/Doctrine/RepositoryManagerTest.php @@ -56,15 +56,18 @@ public function testGetRepositoryShouldResolveEntityShortName() $registryMock = $this->createMock(ManagerRegistry::class); $mainManager = $this->createMock(RepositoryManagerInterface::class); - $registryMock->method('getAliasNamespace') - ->with($this->equalTo('FOSElasticaBundle')) - ->willReturn((new \ReflectionClass(NamespacedEntity::class))->getNamespaceName()) - ; + // @link https://github.com/doctrine/persistence/pull/204 + if (\method_exists(ManagerRegistry::class, 'getAliasNamespace')) { + $registryMock->method('getAliasNamespace') + ->with($this->equalTo('FOSElasticaBundle')) + ->willReturn((new \ReflectionClass(NamespacedEntity::class))->getNamespaceName()) + ; - $mainManager->method('getRepository') - ->with($this->equalTo('index')) - ->willReturn(new Repository($finderMock)) - ; + $mainManager->method('getRepository') + ->with($this->equalTo('index')) + ->willReturn(new Repository($finderMock)) + ; + } $manager = new RepositoryManager($registryMock, $mainManager); $manager->addEntity(NamespacedEntity::class, 'index'); From 1da029252bfab3307a230394ffd0550156e6f8cf Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 10:54:49 +0100 Subject: [PATCH 39/43] [phpunit] Not use CodeExtension anymore --- tests/Functional/ProfilerTest.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/Functional/ProfilerTest.php b/tests/Functional/ProfilerTest.php index f0c69ea22..3d8eb124c 100644 --- a/tests/Functional/ProfilerTest.php +++ b/tests/Functional/ProfilerTest.php @@ -55,7 +55,10 @@ public function setUp(): void $fragmentHandlerMock = $this->createMock(FragmentHandler::class); $loaderMock = $this->createMock(RuntimeLoaderInterface::class); - $this->twig->addExtension(new CodeExtension('', '', '')); + if (\class_exists('Symfony\Bridge\Twig\Extension\CodeExtension')) { + $this->twig->addExtension(new CodeExtension('', '', '')); + } + $this->twig->addExtension(new RoutingExtension($urlGeneratorMock)); $this->twig->addExtension(new HttpKernelExtension()); From 22df9c22e0df4846ec5df3478a313e613186e8f3 Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 11:02:35 +0100 Subject: [PATCH 40/43] [phpunit] Variable 'profile_type' does not exist --- tests/Functional/ProfilerTest.php | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/Functional/ProfilerTest.php b/tests/Functional/ProfilerTest.php index 3d8eb124c..59b11999f 100644 --- a/tests/Functional/ProfilerTest.php +++ b/tests/Functional/ProfilerTest.php @@ -88,6 +88,7 @@ public function testRender($query) 'request' => $request, 'collector' => $this->collector, 'queries' => $this->logger->getQueries(), + 'profile_type' => 'request', ]); $output = \str_replace('"', '"', $output); From 69b18df77f3c669431ad259e5d94cd1beddb9011 Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 11:15:17 +0100 Subject: [PATCH 41/43] Make use of 'AsMessageHandler' attribute in favor of MessageHandlerInterface + dropped support for SF 4.4 (as AsMessageHandler is available in SF 5.4) --- .github/workflows/continuous-integration.yaml | 10 +-------- composer.json | 22 +++++++++---------- .../Handler/AsyncPersistPageHandler.php | 5 +++-- 3 files changed, 15 insertions(+), 22 deletions(-) diff --git a/.github/workflows/continuous-integration.yaml b/.github/workflows/continuous-integration.yaml index b8cb03bd1..74b33e276 100644 --- a/.github/workflows/continuous-integration.yaml +++ b/.github/workflows/continuous-integration.yaml @@ -42,7 +42,6 @@ jobs: - '8.2' - '8.3' symfony: - - '4.4.*' - '5.4.*' - '6.3.*' - '7.0.*' @@ -59,12 +58,6 @@ jobs: symfony: '7.0.*' - php: '8.1' symfony: '7.0.*' - - php: '8.1' - symfony: '4.4.*' - - php: '8.2' - symfony: '4.4.*' - - php: '8.3' - symfony: '4.4.*' fail-fast: false steps: - name: 'Checkout' @@ -112,7 +105,6 @@ jobs: - '8.2' - '8.3' symfony: - - '4.4.*' - '5.4.*' - '6.3.*' - '7.0.*' @@ -121,7 +113,7 @@ jobs: include: - php: '7.4' dependencies: 'lowest' - symfony: '4.4.*' + symfony: '5.4.*' exclude: - php: '7.4' symfony: '7.0.*' diff --git a/composer.json b/composer.json index 3c09f7248..77f7c8901 100644 --- a/composer.json +++ b/composer.json @@ -34,11 +34,11 @@ "pagerfanta/pagerfanta": "^2.4 || ^3.0 || ^4.0", "psr/log": "^1.0 || ^2.0 || ^3.0", "ruflin/elastica": "^7.1", - "symfony/console": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/dependency-injection": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/property-access": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/stopwatch": "^4.4 || ^5.4 || ^6.3 || ^7.0" + "symfony/console": "^5.4 || ^6.3 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.3 || ^7.0", + "symfony/framework-bundle": "^5.4 || ^6.3 || ^7.0", + "symfony/property-access": "^5.4 || ^6.3 || ^7.0", + "symfony/stopwatch": "^5.4 || ^6.3 || ^7.0" }, "require-dev": { "doctrine/doctrine-bundle": "^2.1.1", @@ -56,12 +56,12 @@ "phpstan/phpstan-phpunit": "^1.1", "phpstan/phpstan-symfony": "^1.2", "phpunit/phpunit": "^9.5", - "symfony/expression-language": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/messenger": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/serializer": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/twig-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.3 || ^7.0", - "symfony/yaml": "^4.4 || ^5.4 || ^6.3 || ^7.0" + "symfony/expression-language": "^5.4 || ^6.3 || ^7.0", + "symfony/messenger": "^5.4 || ^6.3 || ^7.0", + "symfony/serializer": "^5.4 || ^6.3 || ^7.0", + "symfony/twig-bundle": "^5.4 || ^6.3 || ^7.0", + "symfony/web-profiler-bundle": "^5.4 || ^6.3 || ^7.0", + "symfony/yaml": "^5.4 || ^6.3 || ^7.0" }, "suggest": { "enqueue/elastica-bundle": "For populating Elasticsearch indexes asynchronously and using significanly less resources. Uses Enqueue.", diff --git a/src/Message/Handler/AsyncPersistPageHandler.php b/src/Message/Handler/AsyncPersistPageHandler.php index 92e7b4497..6902d7cb3 100644 --- a/src/Message/Handler/AsyncPersistPageHandler.php +++ b/src/Message/Handler/AsyncPersistPageHandler.php @@ -13,9 +13,10 @@ use FOS\ElasticaBundle\Message\AsyncPersistPage; use FOS\ElasticaBundle\Persister\AsyncPagerPersister; -use Symfony\Component\Messenger\Handler\MessageHandlerInterface; +use Symfony\Component\Messenger\Attribute\AsMessageHandler; -class AsyncPersistPageHandler implements MessageHandlerInterface +#[AsMessageHandler] +class AsyncPersistPageHandler { private AsyncPagerPersister $persister; From 00570f02a03316efecf1732aca29167dab3c3a64 Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 11:39:59 +0100 Subject: [PATCH 42/43] [phpstan] Excluded AsyncPersistPageHandler as attributes are not supported --- phpstan.dist.neon | 2 ++ 1 file changed, 2 insertions(+) diff --git a/phpstan.dist.neon b/phpstan.dist.neon index e6771d3f3..cb09a8c75 100644 --- a/phpstan.dist.neon +++ b/phpstan.dist.neon @@ -8,6 +8,8 @@ parameters: paths: - src # - tests + excludePaths: + - src/Message/Handler/AsyncPersistPageHandler.php ignoreErrors: - message: /Trying to mock an undefined method/ path: tests/ From f1c31046db521e74461c43c2661803ec3b8e8cfb Mon Sep 17 00:00:00 2001 From: Evert Harmeling Date: Wed, 20 Mar 2024 11:43:48 +0100 Subject: [PATCH 43/43] [phpstan] Fix ContainerAwareInterface not found --- src/DependencyInjection/FOSElasticaExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/DependencyInjection/FOSElasticaExtension.php b/src/DependencyInjection/FOSElasticaExtension.php index 9240039d4..0fd274092 100644 --- a/src/DependencyInjection/FOSElasticaExtension.php +++ b/src/DependencyInjection/FOSElasticaExtension.php @@ -723,7 +723,7 @@ private function loadSerializer(array $config, ContainerBuilder $container): voi $serializer = $container->getDefinition('fos_elastica.serializer_callback_prototype'); $serializer->setClass($config['callback_class']); - if (\is_subclass_of($config['callback_class'], ContainerAwareInterface::class)) { + if (\class_exists('Symfony\Component\DependencyInjection\ContainerAwareInterface') && \is_subclass_of($config['callback_class'], ContainerAwareInterface::class)) { $serializer->addMethodCall('setContainer', [new Reference('service_container')]); } }