/** * @param string|null $apiKey * @param HttpClient|null $httpClient * @param string $apiEndpoint * @param ResponseDeserializer|null $deserializer * @param HttpClientConfigurator|null $clientConfigurator * @param RequestBuilder|null $requestBuilder */ public function __construct($apiKey = null, HttpClient $httpClient = null, $apiEndpoint = 'api.mailgun.net', ResponseDeserializer $deserializer = null, HttpClientConfigurator $clientConfigurator = null, RequestBuilder $requestBuilder = null) { $this->apiKey = $apiKey; $this->restClient = new RestClient($apiKey, $apiEndpoint, $httpClient); if (null === $clientConfigurator) { $clientConfigurator = new HttpClientConfigurator(); /* * To be backward compatible */ if ($apiEndpoint !== 'api.mailgun.net') { $clientConfigurator->setEndpoint($apiEndpoint); } if ($httpClient !== null) { $clientConfigurator->setHttpClient($httpClient); } } $clientConfigurator->setApiKey($apiKey); $this->httpClient = $clientConfigurator->createConfiguredClient(); $this->requestBuilder = $requestBuilder ?: new RequestBuilder(); $this->deserializer = $deserializer ?: new ModelDeserializer(); }