bg_image
header

PSR-7

PSR-7 ist eine PHP Standard Recommendation (PSR), die sich auf HTTP-Nachrichten in PHP bezieht. Sie wurde von der PHP-FIG (Framework Interoperability Group) entwickelt und definiert Schnittstellen für das Arbeiten mit HTTP-Nachrichten, wie sie von Webservern und -Clients verwendet werden.

Hauptmerkmale von PSR-7:

  1. Request und Response:
    PSR-7 standardisiert, wie HTTP-Requests und -Responses in PHP dargestellt werden. Es stellt Schnittstellen für:

    • RequestInterface: Repräsentiert HTTP-Anfragen.
    • ResponseInterface: Repräsentiert HTTP-Antworten.
  2. Unveränderlichkeit (Immutability):
    Alle Objekte sind unveränderlich. Das bedeutet, dass Änderungen an einem HTTP-Objekt ein neues Objekt erzeugen, anstatt das bestehende zu modifizieren. Dies verbessert die Vorhersagbarkeit und erleichtert Debugging.

  3. Streams:
    PSR-7 verwendet Stream-Objekte, um HTTP-Nachrichtenkörper zu handhaben. Die StreamInterface definiert Methoden für die Arbeit mit Streams (z. B. read(), write(), seek()).

  4. ServerRequest:
    Die Schnittstelle ServerRequestInterface erweitert RequestInterface, um zusätzliche Daten wie Cookies, Server-Parameter und hochgeladene Dateien zu behandeln.

  5. Kompatibilität mit Middleware:
    PSR-7 ist der Grundstein für Middleware-Architekturen in PHP. Es erleichtert die Entwicklung von Middleware-Komponenten, die HTTP-Anfragen verarbeiten und Antworten manipulieren.

Verwendung:

PSR-7 ist in modernen PHP-Frameworks und -Libraries weit verbreitet, darunter:

Ziel:

Das Ziel von PSR-7 ist es, die Interoperabilität zwischen verschiedenen PHP-Bibliotheken und -Frameworks zu verbessern, indem ein gemeinsamer Standard für HTTP-Nachrichten definiert wird.

 


Guzzle

 

Guzzle ist eine HTTP-Client-Bibliothek für PHP. Sie ermöglicht es Entwicklern, HTTP-Anfragen in PHP-Anwendungen einfach zu senden und zu empfangen. Guzzle bietet eine Reihe von Funktionen, die das Arbeiten mit HTTP-Anfragen und -Antworten erleichtern:

  1. Einfache HTTP-Anfragen: Guzzle ermöglicht es, GET-, POST-, PUT-, DELETE- und andere HTTP-Anfragen einfach zu senden.

  2. Synchron und asynchron: Anfragen können sowohl synchron als auch asynchron gestellt werden, was eine flexiblere und effizientere Handhabung von HTTP-Anfragen ermöglicht.

  3. Middleware-Unterstützung: Guzzle unterstützt Middleware, die es ermöglicht, Anfragen und Antworten zu modifizieren, bevor sie gesendet oder verarbeitet werden.

  4. Integration mit PSR-7: Guzzle ist vollständig mit PSR-7 (PHP Standard Recommendation 7) konform, was bedeutet, dass es HTTP-Nachrichtenobjekte verwendet, die mit PSR-7 kompatibel sind.

  5. Einfache Fehlerbehandlung: Guzzle bietet Mechanismen zur Behandlung von HTTP-Fehlern und Ausnahmen.

  6. HTTP/2 und HTTP/1.1 Unterstützung: Guzzle unterstützt sowohl HTTP/2 als auch HTTP/1.1.

Ein einfaches Beispiel für die Verwendung von Guzzle zum Senden einer GET-Anfrage könnte so aussehen:

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$client = new Client();
$response = $client->request('GET', 'https://api.example.com/data');

echo $response->getStatusCode(); // 200
echo $response->getBody(); // Antwortinhalt

In diesem Beispiel wird eine GET-Anfrage an https://api.example.com/data gesendet und die Antwort wird verarbeitet.

Guzzle ist eine weit verbreitete und leistungsstarke Bibliothek, die in vielen PHP-Projekten zum Einsatz kommt, insbesondere dort, wo eine robuste und flexible HTTP-Client-Funktionalität erforderlich ist.