1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
<?php
namespace Commercetools\Core\Client;
use Commercetools\Core\Client;
use GuzzleHttp\Client as HttpClient;
class UserAgentProvider
{
private $userAgent;
const USER_AGENT = 'commercetools-sdk-php-v1/';
public function __construct($userAgent = null)
{
if (is_null($userAgent)) {
$userAgent = self::USER_AGENT . Client::VERSION;
$userAgent .= ' (' . $this->getAdapterInfo();
if (extension_loaded('curl') && function_exists('curl_version')) {
$userAgent .= '; curl/' . \curl_version()['version'];
}
$userAgent .= ') PHP/' . PHP_VERSION;
}
$this->userAgent = $userAgent;
}
public function getUserAgent()
{
return $this->userAgent;
}
private function getAdapterInfo()
{
if (defined('\GuzzleHttp\Client::MAJOR_VERSION')) {
$clientVersion = (string) constant(HttpClient::class . '::MAJOR_VERSION');
} else {
$clientVersion = (string) constant(HttpClient::class . '::VERSION');
}
return 'GuzzleHttp/' . $clientVersion;
}
}