zurück zum Artikel

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

Rainald Menge-Sonnentag
Webframework: Symfony 4.3 bekommt neue Komponenten

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

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 [1] und Mime [2] 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 [3] 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 [4] bietet der Symfony-Blog eine Übersicht über die Neuigkeiten in Version 4.3 [5]. Alle Änderungen und Neuerungen lassen sich dem Changelog entnehmen [6]. Die drei neuen Komponenten HttpClient, Mailer und Mime sind in Symfony 4.3 noch als experimentell gekennzeichnet. (rme [7])


URL dieses Artikels:
https://www.heise.de/-4435730

Links in diesem Artikel:
[1] https://symfony.com/components/Mailer
[2] https://symfony.com/components/Mime
[3] https://haveibeenpwned.com/
[4] https://symfony.com/blog/symfony-4-3-0-released
[5] https://symfony.com/blog/symfony-4-3-curated-new-features
[6] https://github.com/symfony/symfony/blob/4.4/CHANGELOG-4.3.md
[7] mailto:rme@ix.de