PHP 8.4.1 Released!

Neue Features

PHP-Kern

Ergänzungen beim Schreibschutz (Readonly)

Anonyme Klassen können nun als readonly markiert werden.

Readonly-Eigenschaften können nun beim Klonen reinitialisiert werden.

Typisierte Klassenkonstanten

Klassen-, Interface-, Trait- und Enum-Konstanten können nun typisiert deklariert werden.

Aus magischen Methoden erzeugte Closures

Aus magischen Methoden erzeugte Closures können nun benannte Argumente akzeptieren.

Der Modifikator final bei einer Methode aus einem Trait

Wenn eine Methode aus einem Trait verwendet wird, kann sie nun als final gekennzeichnet werden.

Das Attribut Override

Das Attribut #[\Override] wurde hinzugefügt, damit überprüft wird, ob eine Methode in einer übergeordneten Klasse oder einer implementierten Schnittstelle existiert.

Syntax für das dynamische Abrufen von Klassenkonstanten

Mit der Syntax C::{$name} kann nun dynamisch auf Klassenkonstanten zugegriffen werden.

Initialisierung statischer Variablen

Für die Initialisierung statischer Variablen können nun beliebige Ausdrücke verwendet werden.

Syntax für Fallback-Werte bei ini-Variablen

In ini-Dateien wird nun die Syntax für Fallback-/Standardwerte unterstützt.

<?php
/*
Angenommen, die Datei /pfad/zu/user.ini enthält die folgenden Einstellungen:

listen = localhost:${DRUPAL_FPM_PORT:-9000}
*/

$user_ini = parse_ini_file('/pfad/zu/user.ini');
echo
$user_ini['listen']; // localhost:9000

CLI

Die Überprüfung der Syntax (Lint) kann nun bei mehreren Dateien gleichzeitig durchgeführt werden.

DOM

Die Eigenschaften DOMElement::$className und DOMElement::$id wurden hinzugefügt. Diese sind im Moment wegen der Einschränkungen der zugrundeliegenden libxml2 nicht binärsicher. Das bedeutet, dass die Werte der Eigenschaften an einem NUL-Byte abgeschnitten werden.

Die Eigenschaften DOMNode::$isConnected und DOMNameSpaceNode::$isConnected wurden hinzugefügt.

Die Eigenschaften DOMNode::$parentElement und DOMNameSpaceNode::$parentElement wurden hinzugefügt.

FFI

Es ist nun möglich, FFI\CData anderen FFI\CData zuzuweisen. Das bedeutet, dass CData nun Strukturen und Feldern zugewiesen werden kann.

Opcache

opcache_get_status()['scripts'][n]['revalidate'] enthält nun einen Unix-Zeitstempel, der angibt, wann das Skript das nächste Mal revalidiert werden muss. Dies wird durch die INI-Direktive opcache.revalidate_freq festgelegt.

POSIX

posix_getrlimit() akzeptiert nun einen optionalen $resource-Parameter, um ein einzelnes Ressourcenlimit abrufen zu können.

posix_isatty() folgt nun der normalen Semantik der Parameterauswertung (ZPP) und gibt eine Typ-Warnung für Integer-Werte aus.

posix_ttyname() folgt nun der normalen Semantik der Parameterauswertung (ZPP) und gibt eine Typ-Warnung für Integer-Werte aus. Darüber hinaus wird nun für Integer-Werte ungültiger Dateideskriptoren eine Wert-Warnung ausgegeben.

Streams

Streams können nun die Benachrichtigung STREAM_NOTIFY_COMPLETED senden. Dies war bisher nicht implementiert.

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top