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