* @license http://www.apache.org/licenses/LICENSE-2.0 Apache2 * @link http://elastic.co */ class ConnectionFactory implements ConnectionFactoryInterface { /** * @var array */ private $connectionParams; /** * @var SerializerInterface */ private $serializer; /** * @var LoggerInterface */ private $logger; /** * @var LoggerInterface */ private $tracer; /** * @var callable */ private $handler; public function __construct(callable $handler, array $connectionParams, SerializerInterface $serializer, LoggerInterface $logger, LoggerInterface $tracer) { $this->handler = $handler; $this->connectionParams = $connectionParams; $this->logger = $logger; $this->tracer = $tracer; $this->serializer = $serializer; } public function create(array $hostDetails): ConnectionInterface { return new Connection( $this->handler, $hostDetails, $this->connectionParams, $this->serializer, $this->logger, $this->tracer ); } }