ProcessingBuilder.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. namespace Elastica\ResultSet;
  3. use Elastica\Query;
  4. use Elastica\Response;
  5. use Elastica\ResultSet;
  6. class ProcessingBuilder implements BuilderInterface
  7. {
  8. /**
  9. * @var BuilderInterface
  10. */
  11. private $builder;
  12. /**
  13. * @var ProcessorInterface
  14. */
  15. private $processor;
  16. /**
  17. * @param BuilderInterface $builder
  18. * @param ProcessorInterface $processor
  19. */
  20. public function __construct(BuilderInterface $builder, ProcessorInterface $processor)
  21. {
  22. $this->builder = $builder;
  23. $this->processor = $processor;
  24. }
  25. /**
  26. * Runs any registered transformers on the ResultSet before
  27. * returning it, allowing the transformers to inject additional
  28. * data into each Result.
  29. *
  30. * @param Response $response
  31. * @param Query $query
  32. *
  33. * @return ResultSet
  34. */
  35. public function buildResultSet(Response $response, Query $query)
  36. {
  37. $resultSet = $this->builder->buildResultSet($response, $query);
  38. $this->processor->process($resultSet);
  39. return $resultSet;
  40. }
  41. }