From aed89aa8dc5d9b31add19843bd91c33dd52402c8 Mon Sep 17 00:00:00 2001 From: ornicar Date: Mon, 9 May 2011 09:48:25 -0700 Subject: [PATCH] Add DoctrineMongoDBProvider and DoctrineORMProvider to deal with count inconsistency --- ...Provider.php => AbstractDoctrineProvider.php} | 9 ++++++++- Provider/DoctrineMongoDBProvider.php | 16 ++++++++++++++++ Provider/DoctrineORMProvider.php | 16 ++++++++++++++++ Resources/config/mongodb.xml | 2 +- Resources/config/orm.xml | 2 +- 5 files changed, 42 insertions(+), 3 deletions(-) rename Provider/{DoctrineProvider.php => AbstractDoctrineProvider.php} (93%) create mode 100644 Provider/DoctrineMongoDBProvider.php create mode 100644 Provider/DoctrineORMProvider.php diff --git a/Provider/DoctrineProvider.php b/Provider/AbstractDoctrineProvider.php similarity index 93% rename from Provider/DoctrineProvider.php rename to Provider/AbstractDoctrineProvider.php index 26825cf..3abc448 100644 --- a/Provider/DoctrineProvider.php +++ b/Provider/AbstractDoctrineProvider.php @@ -8,7 +8,7 @@ use Elastica_Document; use Closure; use InvalidArgumentException; -class DoctrineProvider implements ProviderInterface +abstract class AbstractDoctrineProvider implements ProviderInterface { protected $type; protected $objectManager; @@ -66,6 +66,13 @@ class DoctrineProvider implements ProviderInterface } } + /** + * Counts the objects of a query builder + * + * @return int + **/ + protected abstract function countObjects($queryBuilder); + /** * Creates the query buider used to fetch the documents to index * diff --git a/Provider/DoctrineMongoDBProvider.php b/Provider/DoctrineMongoDBProvider.php new file mode 100644 index 0000000..f7314fa --- /dev/null +++ b/Provider/DoctrineMongoDBProvider.php @@ -0,0 +1,16 @@ +getQuery()->count(); + } +} diff --git a/Provider/DoctrineORMProvider.php b/Provider/DoctrineORMProvider.php new file mode 100644 index 0000000..c9614fe --- /dev/null +++ b/Provider/DoctrineORMProvider.php @@ -0,0 +1,16 @@ +count()->getQuery()->execute(); + } +} diff --git a/Resources/config/mongodb.xml b/Resources/config/mongodb.xml index 5f1a400..8645ad4 100644 --- a/Resources/config/mongodb.xml +++ b/Resources/config/mongodb.xml @@ -6,7 +6,7 @@ - + diff --git a/Resources/config/orm.xml b/Resources/config/orm.xml index 93c615c..bf3e0e9 100644 --- a/Resources/config/orm.xml +++ b/Resources/config/orm.xml @@ -6,7 +6,7 @@ - +