Menü

Webframework: Symfony 4.3 dirigiert HTTP-Anfragen und E-Mails

Ein dedizierter HTTP-Client ermöglicht nichtblockierende Anfragen, und zwei Komponenten vereinfachen das Erstellen und Senden von E-Mails.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 1 Beitrag
Von

Knapp fünf Monate nach der Freigabe von Symfony 4.2 haben die Entwickler nun Version 4.3 des PHP-Frameworks veröffentlicht. Wie üblich bringt das Release zahlreiche Neuerungen mit, darunter drei zusätzliche Komponenten zum Verarbeiten von HTTP-Anfragen, zum Versenden von Mails und zum Erstellen und Verarbeiten von MIME-Inhalten.

Die neue Komponente HttpClient ermöglicht nichtblockierende HTTP-Requests. So läuft der Programmfluss nach dem Aufruf von

$httpClient = HttpClient::create();
$response = $httpClient->request('GET', 'https://...');

weiter, und das $response-Objekt ist direkt verfügbar. Entwickler können auf die Weise beispielsweise mehrere Anfragen gleichzeitig starten, ohne zwischendurch auf die einzelnen Antworten der Server zu warten. Allerdings arbeitet der HttpClient nicht Event-getrieben, ruft also keine Callback-Methode auf, wenn die Daten vollständig sind.

Stattdessen erfolgt der Zugriff später über die Methoden $response->getSatusCode() beziehungsweise $response->GetContent() zur Abfrage des HTTP-Status-Codes beziehungsweise des Inhalts. Beide Aufrufe blockieren anders als der request-Aufruf jeweils, bis Daten zur Verfügung stehen.

Die beiden weiteren Komponenten Mailer und Mime sollen das Erstellen und Versenden von Mails vereinfachen. Erstere bietet Integration zu Mail-Diensten und verwaltet den E-Mail-Versand. Die Mime-Komponente bietet Zugriff auf die MIME-Inhalte (Multipurpose Internet Mail Extension). Symfony 4.3 bringt in der Mime-Komponente sowohl eine Low-Level-API zum Verwalten der Bestandteile von MIME-Inhalten als auch eine separate Klasse Email, die das Erstellen von E-Mail-Inhalten vereinfacht, wie folgender Codeausschnitt zeigt:

$email = (new Email())
->from('developer@heise.de')
->to('troll@heise-forum.de')
->subject('Natürlich haben Sie recht')
->text('Eigentlich hätten wir ...')
->html('<h1>Ihre Meinung zählt</h1> <p>Eigentlich ...</p>')
;

Gleich an mehreren Stellen bekommt Symfony neue oder verbesserte Gültigkeitsprüfungen. Unter anderem lassen sich nun mit der Validator-Komponente über @Assert\Json() JSON-Inhalte auf ihre Validität überprüfen. Der NotBlank-Validator in derselben Komponente ermöglicht neuerdings über die Option (allowNull = true), Null als Wert zuzulassen.

Der neue NotCompromisedPassword-Validator überprüft, ob ein Passwort bekannterweise kompromittiert wurde. Dazu setzt die Komponente eine HTTP-Anfrage an die API der Website haveibeenpwned.com ab. Als Inhalt schickt er freilich nicht das Passwort, sondern die ersten fünf Zeichen des daraus erstellten SHA-1-Hash.

Neben der offiziellen Ankündigung zum Release bietet der Symfony-Blog eine Übersicht über die Neuigkeiten in Version 4.3. Alle Änderungen und Neuerungen lassen sich dem Changelog entnehmen. Die drei neuen Komponenten HttpClient, Mailer und Mime sind in Symfony 4.3 noch als experimentell gekennzeichnet. (rme)