ChainProcessor.php 676 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Elastica\ResultSet;
  3. use Elastica\ResultSet;
  4. /**
  5. * Allows multiple ProcessorInterface instances to operate on the same
  6. * ResultSet, calling each in turn.
  7. */
  8. class ChainProcessor implements ProcessorInterface
  9. {
  10. /**
  11. * @var ProcessorInterface[]
  12. */
  13. private $processors;
  14. /**
  15. * @param ProcessorInterface[] $processors
  16. */
  17. public function __construct($processors)
  18. {
  19. $this->processors = $processors;
  20. }
  21. /**
  22. * {@inheritdoc}
  23. */
  24. public function process(ResultSet $resultSet)
  25. {
  26. foreach ($this->processors as $processor) {
  27. $processor->process($resultSet);
  28. }
  29. }
  30. }