From d50efd919439db89d2452fb6497f3915a4969f99 Mon Sep 17 00:00:00 2001 From: Alexey Kosov Date: Wed, 7 Apr 2021 14:48:26 +0300 Subject: [PATCH 1/5] add doctrine/orm as a dependency for dev --- composer.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b98af11..b6433be 100644 --- a/composer.json +++ b/composer.json @@ -7,9 +7,12 @@ "require": { "php": "^7.1", "symfony/framework-bundle": "^4.0|^5.0", - "friendsofsymfony/elastica-bundle": "^5.0|^6.0", + "friendsofsymfony/elastica-bundle": "^6.0", "enqueue/enqueue-bundle": "^0.10" }, + "require-dev": { + "doctrine/orm": "^2.0" + }, "autoload": { "psr-4": { "Enqueue\\ElasticaBundle\\": "" } }, From 1ed70a94bbda1a1865049791b6ef3126a52e45c6 Mon Sep 17 00:00:00 2001 From: Alexey Kosov Date: Wed, 7 Apr 2021 14:52:03 +0300 Subject: [PATCH 2/5] fix using events the `FOS\ElasticaBundle\Persister\Event\Events` class was removed in 6.0 so we need to use event classes instead --- Persister/Listener/PurgePopulateQueueListener.php | 3 +-- Persister/QueuePagerPersister.php | 7 +++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/Persister/Listener/PurgePopulateQueueListener.php b/Persister/Listener/PurgePopulateQueueListener.php index 052e80b..866b949 100644 --- a/Persister/Listener/PurgePopulateQueueListener.php +++ b/Persister/Listener/PurgePopulateQueueListener.php @@ -3,7 +3,6 @@ use FOS\ElasticaBundle\Persister\Event\PrePersistEvent; use Interop\Queue\Context; -use FOS\ElasticaBundle\Persister\Event\Events; use Symfony\Component\EventDispatcher\EventSubscriberInterface; class PurgePopulateQueueListener implements EventSubscriberInterface @@ -44,7 +43,7 @@ public function purgePopulateQueue(PrePersistEvent $event) public static function getSubscribedEvents() { return [ - Events::PRE_PERSIST => 'purgePopulateQueue', + PrePersistEvent::class => 'purgePopulateQueue', ]; } } diff --git a/Persister/QueuePagerPersister.php b/Persister/QueuePagerPersister.php index 244ce90..5809907 100644 --- a/Persister/QueuePagerPersister.php +++ b/Persister/QueuePagerPersister.php @@ -3,7 +3,6 @@ use Enqueue\ElasticaBundle\Queue\Commands; use Enqueue\Util\JSON; -use FOS\ElasticaBundle\Persister\Event\Events; use FOS\ElasticaBundle\Persister\Event\PostAsyncInsertObjectsEvent; use FOS\ElasticaBundle\Persister\Event\PostPersistEvent; use FOS\ElasticaBundle\Persister\Event\PrePersistEvent; @@ -58,7 +57,7 @@ public function insert(PagerInterface $pager, array $options = array()) $objectPersister = $this->registry->getPersister($options['indexName'], $options['typeName']); $event = new PrePersistEvent($pager, $objectPersister, $options); - $this->dispatcher->dispatch($event, Events::PRE_PERSIST); + $this->dispatcher->dispatch($event); $pager = $event->getPager(); $options = $event->getOptions(); @@ -122,7 +121,7 @@ public function insert(PagerInterface $pager, array $options = array()) $errorMessage, $data['options'] ); - $this->dispatcher->dispatch($event, Events::POST_ASYNC_INSERT_OBJECTS); + $this->dispatcher->dispatch($event); } if (microtime(true) > $limitTime) { @@ -131,6 +130,6 @@ public function insert(PagerInterface $pager, array $options = array()) } $event = new PostPersistEvent($pager, $objectPersister, $options); - $this->dispatcher->dispatch($event, Events::POST_PERSIST); + $this->dispatcher->dispatch($event); } } From 45a384d1682b51202e0970426ba9b2d9c9866fa9 Mon Sep 17 00:00:00 2001 From: Alexey Kosov Date: Wed, 7 Apr 2021 14:57:34 +0300 Subject: [PATCH 3/5] remove types Elasticsearch 7 and FOSElasticaBundle 6 no longer use types (only indexes) --- DependencyInjection/Configuration.php | 1 - DependencyInjection/EnqueueElasticaExtension.php | 5 ++--- Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php | 10 +++------- Doctrine/SyncIndexWithObjectChangeListener.php | 1 - Persister/QueuePagerPersister.php | 2 +- Queue/PopulateProcessor.php | 5 +---- 6 files changed, 7 insertions(+), 17 deletions(-) diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 53a1347..ed513a7 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -38,7 +38,6 @@ public function getConfigTreeBuilder() ->booleanNode('remove')->defaultTrue()->end() ->scalarNode('connection')->defaultValue('default')->cannotBeEmpty()->end() ->scalarNode('index_name')->isRequired()->cannotBeEmpty()->end() - ->scalarNode('type_name')->isRequired()->cannotBeEmpty()->end() ->scalarNode('model_class')->isRequired()->cannotBeEmpty()->end() ->scalarNode('model_id')->defaultValue('id')->cannotBeEmpty()->end() ->scalarNode('repository_method')->defaultValue('find')->cannotBeEmpty()->end() diff --git a/DependencyInjection/EnqueueElasticaExtension.php b/DependencyInjection/EnqueueElasticaExtension.php index d717cdf..48a7b37 100644 --- a/DependencyInjection/EnqueueElasticaExtension.php +++ b/DependencyInjection/EnqueueElasticaExtension.php @@ -67,9 +67,8 @@ public function load(array $configs, ContainerBuilder $container) foreach ($config['doctrine']['queue_listeners'] as $listenerConfig) { $listenerId = sprintf( - 'enqueue_elastica.doctrine_queue_listener.%s.%s', - $listenerConfig['index_name'], - $listenerConfig['type_name'] + 'enqueue_elastica.doctrine_queue_listener.%s', + $listenerConfig['index_name'] ); $container->register($listenerId, SyncIndexWithObjectChangeListener::class) diff --git a/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php b/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php index 1f818ca..10a8345 100644 --- a/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php +++ b/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php @@ -49,9 +49,6 @@ public function process(Message $message, Context $context): Result if (false == isset($data['index_name'])) { return Result::reject('The message data misses index_name'); } - if (false == isset($data['type_name'])) { - return Result::reject('The message data misses type_name'); - } if (false == isset($data['repository_method'])) { return Result::reject('The message data misses repository_method'); } @@ -60,11 +57,10 @@ public function process(Message $message, Context $context): Result $modelClass = $data['model_class']; $id = $data['id']; $index = $data['index_name']; - $type = $data['type_name']; $repositoryMethod = $data['repository_method']; $repository = $this->doctrine->getManagerForClass($modelClass)->getRepository($modelClass); - $persister = $this->persisterRegistry->getPersister($index, $type); + $persister = $this->persisterRegistry->getPersister($index); switch ($action) { case self::UPDATE_ACTION: @@ -75,7 +71,7 @@ public function process(Message $message, Context $context): Result } if ($persister->handlesObject($object)) { - if ($this->indexable->isObjectIndexable($index, $type, $object)) { + if ($this->indexable->isObjectIndexable($index, $object)) { $persister->replaceOne($object); } else { $persister->deleteOne($object); @@ -90,7 +86,7 @@ public function process(Message $message, Context $context): Result return Result::ack(sprintf('The object "%s" with id "%s" could not be found.', $modelClass, $id)); } - if ($persister->handlesObject($object) && $this->indexable->isObjectIndexable($index, $type, $object)) { + if ($persister->handlesObject($object) && $this->indexable->isObjectIndexable($index, $object)) { $persister->insertOne($object); } diff --git a/Doctrine/SyncIndexWithObjectChangeListener.php b/Doctrine/SyncIndexWithObjectChangeListener.php index 5751d9f..1483447 100644 --- a/Doctrine/SyncIndexWithObjectChangeListener.php +++ b/Doctrine/SyncIndexWithObjectChangeListener.php @@ -100,7 +100,6 @@ private function sendUpdateIndexMessage($action, $id) 'model_id' => $this->config['model_id'], 'id' => $id, 'index_name' => $this->config['index_name'], - 'type_name' => $this->config['type_name'], 'repository_method' => $this->config['repository_method'], ])); diff --git a/Persister/QueuePagerPersister.php b/Persister/QueuePagerPersister.php index 5809907..5787313 100644 --- a/Persister/QueuePagerPersister.php +++ b/Persister/QueuePagerPersister.php @@ -54,7 +54,7 @@ public function insert(PagerInterface $pager, array $options = array()) $pager->setCurrentPage($options['first_page']); - $objectPersister = $this->registry->getPersister($options['indexName'], $options['typeName']); + $objectPersister = $this->registry->getPersister($options['indexName']); $event = new PrePersistEvent($pager, $objectPersister, $options); $this->dispatcher->dispatch($event); diff --git a/Queue/PopulateProcessor.php b/Queue/PopulateProcessor.php index 3951a6c..4126905 100644 --- a/Queue/PopulateProcessor.php +++ b/Queue/PopulateProcessor.php @@ -48,15 +48,12 @@ public function process(Message $message, Context $context): Result if (!isset($data['options']['indexName'])) { return Result::reply($this->createReplyMessage($context, $message, 0,'The message is invalid. Missing indexName option.')); } - if (!isset($data['options']['typeName'])) { - return Result::reply($this->createReplyMessage($context, $message, 0,'The message is invalid. Missing typeName option.')); - } $options = $data['options']; $options['first_page'] = $data['page']; $options['last_page'] = $data['page']; - $provider = $this->pagerProviderRegistry->getProvider($options['indexName'], $options['typeName']); + $provider = $this->pagerProviderRegistry->getProvider($options['indexName']); $pager = $provider->provide($options); $pager->setMaxPerPage($options['max_per_page']); $pager->setCurrentPage($options['first_page']); From 9306d750397980a0c730dc828976a12fabb9fde0 Mon Sep 17 00:00:00 2001 From: Alexey Kosov Date: Wed, 7 Apr 2021 15:00:01 +0300 Subject: [PATCH 4/5] fix a typo --- DependencyInjection/EnqueueElasticaExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DependencyInjection/EnqueueElasticaExtension.php b/DependencyInjection/EnqueueElasticaExtension.php index 48a7b37..a5010b4 100644 --- a/DependencyInjection/EnqueueElasticaExtension.php +++ b/DependencyInjection/EnqueueElasticaExtension.php @@ -45,7 +45,7 @@ public function load(array $configs, ContainerBuilder $container) ->addTag('kernel.event_subscriber') ; - $container->register('enqueue_elastica.queue_pager_perister', QueuePagerPersister::class) + $container->register('enqueue_elastica.queue_pager_persister', QueuePagerPersister::class) ->addArgument(new Reference('enqueue_elastica.context')) ->addArgument(new Reference('fos_elastica.persister_registry')) ->addArgument(new Reference('event_dispatcher')) From 892d5b59e32d6c881f66c5160aa2aa1f81ee38c1 Mon Sep 17 00:00:00 2001 From: Alexey Kosov Date: Wed, 7 Apr 2021 15:04:22 +0300 Subject: [PATCH 5/5] replace deprecated `Doctrine\Common\Persistence` classes with `Doctrine\Persistence` --- Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php | 2 +- Doctrine/SyncIndexWithObjectChangeListener.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php b/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php index 10a8345..ec6024e 100644 --- a/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php +++ b/Doctrine/Queue/SyncIndexWithObjectChangeProcessor.php @@ -10,7 +10,7 @@ use Interop\Queue\Context; use Interop\Queue\Message; use Interop\Queue\Processor; -use Doctrine\Common\Persistence\ManagerRegistry; +use Doctrine\Persistence\ManagerRegistry; final class SyncIndexWithObjectChangeProcessor implements Processor, CommandSubscriberInterface, QueueSubscriberInterface { diff --git a/Doctrine/SyncIndexWithObjectChangeListener.php b/Doctrine/SyncIndexWithObjectChangeListener.php index 1483447..1966f2b 100644 --- a/Doctrine/SyncIndexWithObjectChangeListener.php +++ b/Doctrine/SyncIndexWithObjectChangeListener.php @@ -1,7 +1,7 @@