Guzzle für PHP: Vollständige Anleitung mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Was ist Guzzle und wozu wird es benötigt?

\n\n

Guzzle ist eine leistungsstarke PHP-Bibliothek für die Arbeit mit HTTP-Anfragen. Sie bietet eine benutzerfreundliche Schnittstelle zum Senden von HTTP-Anfragen, Verarbeiten von Antworten, Arbeiten mit Cookies, Sitzungen, asynchronen Anfragen und vielem mehr. Wenn Sie mit APIs arbeiten, Webseiten parsen oder einfach mit entfernten Servern interagieren, wird Guzzle zu Ihrem unverzichtbaren Werkzeug.

\n\n

Die wichtigsten Funktionen von Guzzle:

\n
    \n
  • Unterstützung aller HTTP-Methoden (GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS)
  • \n
  • Arbeit mit Headern, Anfragekörper, URL-Parametern
  • \n
  • Unterstützung asynchroner Anfragen (Promise-basiert)
  • \n
  • Automatische Verarbeitung von Weiterleitungen (Redirects)
  • \n
  • Arbeit mit Cookies und Sitzungen
  • \n
  • Middleware zur Erweiterung der Funktionalität
  • \n
  • Unterstützung von PSR-7 (PSR-7-Schnittstellen für HTTP-Nachrichten)
  • \n
  • Einfaches Testen und Mocken
  • \n
\n\n

Guzzle wird in großen Projekten wie Laravel (integrierter HTTP-Client), Drupal, Magento und vielen anderen verwendet.

\n\n

Installation

\n\n

Die Installation von Guzzle erfolgt über Composer – den Abhängigkeitsmanager für PHP. Wenn Sie noch kein Composer haben, installieren Sie es von der offiziellen Website getcomposer.org.

\n\n

Führen Sie den folgenden Befehl im Terminal im Stammverzeichnis Ihres Projekts aus:

\n\n
composer require guzzlehttp/guzzle
\n\n

Nach der Installation binden Sie den Composer-Autoloader in Ihre PHP-Datei ein:

\n\n
require 'vendor/autoload.php';
\n\n

Jetzt sind Sie bereit, mit Guzzle zu arbeiten.

\n\n

Schnellstart

\n\n

Lassen Sie uns eine einfache GET-Anfrage an eine öffentliche API senden und Daten im JSON-Format abrufen.

\n\n
<?php\nrequire 'vendor/autoload.php';\n\nuse GuzzleHttp\\Client;\n\n$client = new Client();\n$response = $client->get('https://jsonplaceholder.typicode.com/posts/1');\n\n// Antwortkörper abrufen\n$body = $response->getBody();\n\n// JSON in ein Array umwandeln\n$data = json_decode($body, true);\n\necho "Title: " . $data['title'] . "\\n";\necho "Body: " . $data['body'] . "\\n";\n?>
\n\n

Dieses Beispiel zeigt, wie einfach Sie Daten von einem entfernten Server abrufen können. Guzzle verarbeitet automatisch Header, Statuscodes und den Antwortkörper.

\n\n

Wichtige Methoden und Funktionen

\n\n

1. get() — GET-Anfrage

\n

Was es macht: Sendet eine HTTP-GET-Anfrage an die angegebene URL. Wird zum Abrufen von Daten verwendet.

\n

Parameter:

\n
    \n
  • $uri (string) — URL der Anfrage
  • \n
  • $options (array) — Array mit Optionen (Header, Query-Parameter, Timeouts usw.)
  • \n
\n

Beispiel:

\n
<?php\n$client = new GuzzleHttp\\Client();\n$response = $client->get('https://api.github.com/users/octocat', [\n    'headers' => [\n        'Accept' => 'application/json',\n        'User-Agent' => 'Guzzle-Demo'\n    ],\n    'query' => [\n        'page' => 1,\n        'per_page' => 10\n    ]\n]);\n\necho $response->getStatusCode(); // 200\necho $response->getBody();\n?>
\n\n

2. post() — POST-Anfrage

\n

Was es macht: Sendet eine POST-Anfrage. Wird zum Erstellen neuer Ressourcen oder zum Senden von Daten an den Server verwendet.

\n

Parameter:

\n
    \n
  • $uri (string) — URL der Anfrage
  • \n
  • $options (array) — Array mit Optionen (body, form_params, json, multipart usw.)
  • \n
\n

Beispiel:

\n
<?php\n$client = new GuzzleHttp\\Client();\n$response = $client->post('https://jsonplaceholder.typicode.com/posts', [\n    'json' => [\n        'title' => 'Neuer Beitrag',\n        'body' => 'Inhalt des Beitrags',\n        'userId' => 1\n    ]\n]);\n\necho $response->getStatusCode(); // 201\n$data = json_decode($response->getBody(), true);\nprint_r(                    

Empfehlungen