PHP 8.4.2 Released!

Sonstige Änderungen

PHP-Kern

Set(raw)cookie akzeptiert den Parameter $option

Die Funktionen setcookie() und setrawcookie() unterstützen nun auch die folgende Signatur:

setcookie(string $name, string $value = "", array $options = []): bool
wobei $options ein assoziatives Array ist, das die folgenden Schlüssel haben kann: "expires", "path", "domain", "secure", "httponly" und "samesite".

Neue INI-Direktiven für Syslog

Die folgenden INI-Direktiven wurden hinzugefügt, um die Protokollierung anzupassen, wenn error_log auf syslog gesetzt ist:

syslog.facility
Gibt an, welche Art von Programm die Nachricht protokolliert.
syslog.filter
Gibt den Filtertyp zum Filtern der protokollierten Nachrichten an. Die unterstützten Filtertypen sind all, no-ctrl und ascii. Seit PHP 7.3.8 steht außerdem raw zur Verfügung und stellt das Verhalten von syslog aus früheren PHP-Versionen wieder her. Dieser Filter wirkt sich auch auf Aufrufe von syslog() aus.
syslog.ident
Gibt die ident-Zeichenkette an, die jeder Meldung vorangestellt wird.

Garbage-Collection

Die zyklische GC wurde verbessert, was zu erheblichen Leistungsverbesserungen führen kann.

Verschiedenes

Die Funktion var_export() exportiert stdClass-Objekte nun als Array, das in ein Objekt umgewandelt wird ((object) array( ... )), anstatt die nicht existierende Methode stdClass::__setState() zu verwenden.

Die Funktion debug_zval_dump() wurde geändert, um rekursive Arrays und Objekte auf die gleiche Weise anzuzeigen wie var_dump(). Damit werden sie nun nicht mehr doppelt angezeigt.

Die Funktionen array_push() und array_unshift() können nun auch mit einem einzigen Parameter aufgerufen werden. Dies ist besonders nützlich in Verbindung mit dem Spread-Operator (Zerlegungsoperator).

Interaktiver PHP-Debugger

Die nicht verwendeten Konstanten PHPDBG_FILE, PHPDBG_METHOD, PHPDBG_LINENO und PHPDBG_FUNC wurden entfernt.

FastCGI-Prozessmanager (FPM)

Die Funktion getallheaders() ist nun ebenfalls verfügbar.

Client-URL-Bibliothek (cURL)

libcurl ≥ 7.15.5 ist nun erforderlich.

Datenfilterung

Der Filter FILTER_VALIDATE_FLOAT unterstützt nun auch die Option thousand, die die erlaubten Tausendertrennzeichen definiert. Die Voreinstellung ("',.") ist vollständig abwärtskompatibel mit früheren PHP-Versionen.

Der Filter FILTER_SANITIZE_ADD_SLASHES wurde als Alias des magic_quotes-Filters (FILTER_SANITIZE_MAGIC_QUOTES) hinzugefügt. Der magic_quotes-Filter wird voraussichtlich in zukünftigen PHP-Versionen entfernt.

FTP

Der Standard-Übertragungsmodus ist nun binary.

Funktionen für die Internationalisierung

Die Konstante Normalizer::NONE ist veraltet, wenn PHP mit einer ICU-Version ≥ 56 kompiliert wurde.

Bei der Methode Normalizer::normalize() wurde die Konstante Normalizer::FORM_KC_CF als Parameter für die NFKC_Casefold-Normalisierung hinzugefügt; sie ist verfügbar mit ICU ≥ 56.

JavaScript Object Notation (JSON)

Das neue Flag JSON_THROW_ON_ERROR wurde hinzugefügt, das in den Funktionen json_decode() und json_encode() verwendet werden kann. Es bewirkt, dass diese Funktionen bei einem Fehler die neue JsonException auslösen, anstatt den globalen Fehlerstatus zu setzen, der mit json_last_error() und json_last_error_msg() abgerufen wird. JSON_PARTIAL_OUTPUT_ON_ERROR hat Vorrang vor JSON_THROW_ON_ERROR.

Multibyte-Zeichenketten

Die Konfigurationsoption --with-libmbfl ist nicht mehr verfügbar.

ODBC (Unified)

Die Unterstützung für ODBCRouter und Birdstep einschließlich der INI-Direktive birdstep.max_links wurde entfernt.

OPcache

Die INI-Direktive opcache.inherited_hack wurde entfernt. Der Wert wurde bereits seit PHP 5.3.0 ignoriert.

OpenSSL

Die SSL-Stream-Optionen min_proto_version und max_proto_version sowie die zugehörigen Konstanten für mögliche TLS-Protokollwerte wurden hinzugefügt.

Reguläre Ausdrücke (Perl-kompatibel)

Die Erweiterung PCRE wurde auf PCRE2 aktualisiert, was zu kleineren Änderungen im Verhalten führen kann (zum Beispiel werden Zeichenbereiche in Klassen nun strenger interpretiert) und die bestehende Syntax für reguläre Ausdrücke erweitert.

Die Funktion preg_quote() maskiert nun auch das '#'-Zeichen.

Microsoft SQL Server und Sybase-Funktionen (PDO_DBLIB)

Die Eigenschaft PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS wurde hinzugefügt, um leere Datensätze automatisch überspringen zu können.

Die Eigenschaft PDO::DBLIB_ATTR_TDS_VERSION, die die TDS-Version angibt, wurde hinzugefügt.

DATETIME2-Spalten werden nun genauso behandelt wie DATETIME-Spalten.

SQLite-Funktionen (PDO_SQLITE)

SQLite3-Datenbanken können nun im Nur-Lese-Modus geöffnet werden, indem die neue Eigenschaft PDO::SQLITE_ATTR_OPEN_FLAGS auf PDO::SQLITE_OPEN_READONLY gesetzt wird.

Handhabung von Sessions

Die Funktion session_set_cookie_params() unterstützt nun auch die folgende Signatur:

wobei $options ein assoziatives Array ist, das folgende Schlüssel haben kann: "lifetime", "path", "domain", "secure", "httponly" und "samesite". Dementsprechend enthält der Rückgabewert der Funktion session_get_cookie_params() nun auch ein Element mit dem Schlüssel "samesite". Außerdem wurde die neue INI-Option session.cookie_samesite hinzugefügt, um die Standardeinstellung der SameSite-Direktive für Cookies festzulegen. Ihr Standardwert ist "" (die leere Zeichenkette), sodass keine SameSite-Anweisung gesetzt wird. Dieser Wert kann auf "Lax" oder "Strict" gesetzt werden, wodurch die entsprechende SameSite-Richtlinie gesetzt wird.

Tidy

PHP mit » tidyp zu kompilieren, wird nun auch transparent unterstützt. Da tidyp keine API bietet, um das Veröffentlichungsdatum abzurufen, geben die Funktionen tidy_get_release() und tidy::getRelease() in diesem Fall 'unknown' zurück.

XML-Parser

Wenn die Erweiterung gegen libxml kompiliert wurde, wird der Rückgabewert des Callbacks der Funktion xml_set_external_entity_ref_handler() nicht mehr ignoriert. Zuvor wurde der Rückgabewert ignoriert und das Parsen wurde nie beendet.

Zip

Es wird davon abgeraten, gegen die mit PHP mitgelieferte libzip zu kompilieren, aber es ist dennoch möglich, indem die Option --without-libzip zur Konfiguration hinzugefügt wird.

Komprimierung mit Zlib

Für den compress.zlib-Wrapper wurde die Kontextoption zlib/level hinzugefügt, um die Einstellung der gewünschten Kompressionsstufe zu erleichtern.

add a note

User Contributed Notes

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