V
interface Method
{
public function httpMethod(): string;
public function payload(): array;
public function endpoint(): string;
}
final class GoogleMethod implements Method {//}
final class YandexMethod implements Method {//}
final class ApiClient
{
public function do(Method $method)
{
$response = $this->httpClient->request($method->httpMethod(), $method->endpoint(), ['form_params' => $method->endpoint()]);
}
}