From 3cab67c4515c210a87892d4f97fa02228f639a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20K=C3=A4mmerling?= Date: Wed, 9 Apr 2025 13:16:51 +0200 Subject: [PATCH 1/2] Refactor GuzzleClient The underlying GuzzleClient is marked as final since now around 5 years. Actually i completely missed that and therefore our GuzzleClient broke phpstan. The "new" GuzzleClient nolonger extends the old one. It is now simply a wrapper (passing call calls to the GuzzleClient) --- src/Clients/GuzzleClient.php | 19 +++++++++++++------ src/Models/PlacementGroups/PlacementGroup.php | 1 + 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Clients/GuzzleClient.php b/src/Clients/GuzzleClient.php index 9af3b9a..472c04d 100644 --- a/src/Clients/GuzzleClient.php +++ b/src/Clients/GuzzleClient.php @@ -5,22 +5,29 @@ use GuzzleHttp\Client; use LKDev\HetznerCloud\HetznerAPIClient; -class GuzzleClient extends Client +class GuzzleClient { + protected Client $client; + /** - * @param HetznerAPIClient $client - * @param array $additionalGuzzleConfig + * @param HetznerAPIClient $client + * @param array $additionalGuzzleConfig */ public function __construct(HetznerAPIClient $client, $additionalGuzzleConfig = []) { $guzzleConfig = array_merge([ 'base_uri' => $client->getBaseUrl(), 'headers' => [ - 'Authorization' => 'Bearer '.$client->getApiToken(), + 'Authorization' => 'Bearer ' . $client->getApiToken(), 'Content-Type' => 'application/json', - 'User-Agent' => ((strlen($client->getUserAgent()) > 0) ? $client->getUserAgent().' ' : '').'hcloud-php/'.HetznerAPIClient::VERSION, + 'User-Agent' => ((strlen($client->getUserAgent()) > 0) ? $client->getUserAgent() . ' ' : '') . 'hcloud-php/' . HetznerAPIClient::VERSION, ], ], $additionalGuzzleConfig); - parent::__construct($guzzleConfig); + $this->client = new Client($guzzleConfig); + } + + public function __call($name, $arguments) + { + return $this->client->$name(...$arguments); } } diff --git a/src/Models/PlacementGroups/PlacementGroup.php b/src/Models/PlacementGroups/PlacementGroup.php index adbc344..d269fd7 100644 --- a/src/Models/PlacementGroups/PlacementGroup.php +++ b/src/Models/PlacementGroups/PlacementGroup.php @@ -2,6 +2,7 @@ namespace LKDev\HetznerCloud\Models\PlacementGroups; +use GuzzleHttp\Client; use LKDev\HetznerCloud\APIResponse; use LKDev\HetznerCloud\HetznerAPIClient; use LKDev\HetznerCloud\Models\Actions\Action; From 3ceb36eb03b4ca76efd70d8ba64da75b8fc5540a Mon Sep 17 00:00:00 2001 From: StyleCI Bot Date: Wed, 9 Apr 2025 11:17:03 +0000 Subject: [PATCH 2/2] Apply fixes from StyleCI --- src/Clients/GuzzleClient.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Clients/GuzzleClient.php b/src/Clients/GuzzleClient.php index 472c04d..b584645 100644 --- a/src/Clients/GuzzleClient.php +++ b/src/Clients/GuzzleClient.php @@ -10,17 +10,17 @@ class GuzzleClient protected Client $client; /** - * @param HetznerAPIClient $client - * @param array $additionalGuzzleConfig + * @param HetznerAPIClient $client + * @param array $additionalGuzzleConfig */ public function __construct(HetznerAPIClient $client, $additionalGuzzleConfig = []) { $guzzleConfig = array_merge([ 'base_uri' => $client->getBaseUrl(), 'headers' => [ - 'Authorization' => 'Bearer ' . $client->getApiToken(), + 'Authorization' => 'Bearer '.$client->getApiToken(), 'Content-Type' => 'application/json', - 'User-Agent' => ((strlen($client->getUserAgent()) > 0) ? $client->getUserAgent() . ' ' : '') . 'hcloud-php/' . HetznerAPIClient::VERSION, + 'User-Agent' => ((strlen($client->getUserAgent()) > 0) ? $client->getUserAgent().' ' : '').'hcloud-php/'.HetznerAPIClient::VERSION, ], ], $additionalGuzzleConfig); $this->client = new Client($guzzleConfig);