PSR-18 - стандарт HTTP-клиента:
interface ClientInterface {
public function sendRequest(RequestInterface $request): ResponseInterface;
}
// Использование (любая реализация: Guzzle, Symfony HttpClient, etc.)
$client = new GuzzleClient();
$request = new Request('GET', 'https://api.example.com/users');
$response = $client->sendRequest($request);
$body = $response->getBody()->getContents();PSR-18 позволяет менять HTTP-клиент без изменения кода приложения. Используется с PSR-7 (messages) и PSR-17 (factories).