Neue Features

Neuer Typ: object

Der neue Typ object wurde eingeführt. Er kann verwendet werden, um (kontravariant) Parameter und (kovariant) Rückgabewerte beliebiger Objekte zu typisieren.

<?php

function test(object $obj) : object
{
    return new 
SplQueue();
}

test(new StdClass());

Erweiterung nach Name laden

Um Shared- (gemeisam genutzte) Erweiterungen zu laden, wird keine Dateierweiterung (.so unter Unix oder .dll unter Windows) mehr benötigt. Dies gilt sowohl für die Datei php.ini als auch für die Funktion dl().

Überschreiben abstrakter Methoden

Wenn eine abstrakte Klasse eine andere abstrakte Klasse erweitert, ist es nun möglich, abstrakte Methoden zu überschreiben.

<?php

abstract class A
{
    abstract function 
test(string $s);
}
abstract class 
extends A
{
    
// überschrieben - die Kontravarianz für die Parameter und die Kovarianz für die Rückgabe bleiben erhalten
    
abstract function test($s) : int;
}

Sodium ist nun eine Standarderweiterung

Die moderne kryptographische Bibliothek Sodium ist nun eine Kern-Erweiterung von PHP.

Eine vollständige Funktionsreferenz befindet sich im Kapitel Sodium.

Passwort-Hashing mit Argon2

Die Passwort-Hashing-API wurde um Argon2 erweitert. Es stehen die folgenden Konstanten zur Verfügung:

  • PASSWORD_ARGON2I
  • PASSWORD_ARGON2_DEFAULT_MEMORY_COST
  • PASSWORD_ARGON2_DEFAULT_TIME_COST
  • PASSWORD_ARGON2_DEFAULT_THREADS

Erweiterte Zeichenketten-Typen für PDO

Der Zeichenketten-Typ von PDO wurde erweitert, um nationale Zeichensätze bei der Emulation vorbereiteter Anweisungen (Prepared Statements) zu unterstützen. Dafür wurden folgende Konstanten hinzugefügt:

  • PDO::PARAM_STR_NATL
  • PDO::PARAM_STR_CHAR
  • PDO::ATTR_DEFAULT_STR_PARAM

Diese Konstanten können verwendet werden, indem sie durch bitweises OR mit PDO::PARAM_STR verkettet werden:

<?php

$db
->quote('über'PDO::PARAM_STR PDO::PARAM_STR_NATL);

Zusätzliche Debugging-Informationen bei der Emulation vorbereiteter Anweisungen in PDO

Die Methode PDOStatement::debugDumpParams() wurde aktualisiert, und enthält nun auch die an die DB gesendete SQL-Anweisung, wobei die vollständige, unbearbeitete Anweisung (einschließlich der durch ihre zugehörigen Werte ersetzten Platzhalter) angezeigt wird. Dies wurde hinzugefügt, um die Fehlersuche bei emulierten vorbereiteten Anweisungen zu erleichtern (und ist daher nur verfügbar, wenn die Emulation vorbereiteter Anweisungen aktiviert ist).

Unterstützung für erweiterte Operationen in LDAP

Die Erweiterung LDAP wurde um die Unterstützung für EXOP erweitert. Dafür wurden folgende Funktionen und Konstanten hinzugefügt:

Ergänzung der Erweiterung Sockets um Adressinformationen

Die Erweiterung Sockets bietet nun die Möglichkeit, Adressinformationen abzurufen, eine Verbindung zu ihnen herzustellen, an sie zu binden und Informationen darüber abzurufen. Dafür wurden die folgenden vier Funktionen hinzugefügt:

Erweiterung des Parametertyps

Die Parametertypen können bei einer überschriebenen Methode und bei der Implementierung einer Schnittstelle nun weggelassen werden. Da die Parametertypen kontravariant sind, wird das Liskovsche Substitutionsprinzip (LSP) dabei nicht verletzt.

<?php

interface A
{
    public function 
Test(array $input);
}

class 
implements A
{
    public function 
Test($input){} // Typ für $input weggelassen
}

Nachgestelltes Komma bei gruppierten Namensräumen erlaubt

Die in PHP 7.0 eingeführte Syntax für Gruppen erlaubt nun ein abschließendes Komma.

<?php

use Foo\Bar\{
    
Foo,
    
Bar,
    
Baz,
};

Unterstützung für proc_nice() unter Windows

Die Funktion proc_nice() wird nun auch unter Windows unterstützt.

Unterstützung der Byte-Reihenfolge in pack() und unpack()

Die Funktionen pack() und unpack() unterstützen Floats und Doubles nun sowohl im Format Little-Endian als auch im Format Big-Endian.

Verbesserungen bei der Erweiterung EXIF

Die Erweiterung EXIF wurde aktualisiert und unterstützt nun mehr Formate. Das bedeutet, dass deren formatspezifische Tags bei der Analyse von Bildern mit der Funktion exif_read_data() nun korrekt übersetzt werden. Die folgenden neuen Formate werden nun unterstützt:

  • Samsung
  • DJI
  • Panasonic
  • Sony
  • Pentax
  • Minolta
  • Sigma/Foveon
  • AGFA
  • Kyocera
  • Ricoh
  • Epson

Die EXIF-Funktionen exif_read_data() und exif_thumbnail() unterstützen nun die Übergabe eines Streams als ihren ersten Parameter.

Neue Features in PCRE

  • Der Modifikator J wurde hnzugefügt, um PCRE_DUPNAMES setzen zu können.

SQLite3 ermöglicht das Schreiben von BLOBs

Mit der Methode SQLite3::openBlob() können nun BLOB-Felder im schreibenden Modus geöffnet werden. Zuvor wurde nur der lesende Modus unterstützt.

Oracle OCI8 Transparent Application Failover Callbacks

Die Unterstützung für Oracle Database Transparent Application Failover (TAF) Callbacks wurde hinzugefügt. TAF ermöglicht es PHP-OCI8-Anwendungen, die Verbindung zu einer vorkonfigurierten Datenbank automatisch wiederherzustellen, wenn sie unterbrochen wird. Mit TAF-Callbacks kann die Wiederherstellung der Verbindung während des Failovers von der PHP-Anwendung aus überwacht und gesteuert werden.

Verbesserungen bei der Erweiterung ZIP

Die Unterstützung für das Lesen und Schreiben verschlüsselter Archive wurde hinzugefügt (erfordert libzip 1.2.0).

Die Klasse ZipArchive implementiert nun die Schnittstelle Countable.

Der zip://-Stream akzeptiert nun die Kontextoption 'password'.

Hier Kannst Du einen Kommentar verfassen


Bitte gib mindestens 10 Zeichen ein.
Wird geladen... Bitte warte.
* Pflichtangabe
Es sind noch keine Kommentare vorhanden.

PHP cURL-Tutorial: Verwendung von cURL zum Durchführen von HTTP-Anfragen

cURL ist eine leistungsstarke PHP-Erweiterung, die es Ihnen ermöglicht, mit verschiedenen Servern über verschiedene Protokolle wie HTTP, HTTPS, FTP und mehr zu kommunizieren. ...

TheMax

Autor : TheMax
Kategorie: PHP-Tutorials

Midjourney Tutorial - Anleitung für Anfänger

Über Midjourney, dem Tool zur Erstellung digitaler Bilder mithilfe von künstlicher Intelligenz, gibt es ein informatives Video mit dem Titel "Midjourney Tutorial auf Deutsch - Anleitung für Anfänger" ...

Mike94

Autor : Mike94
Kategorie: KI Tutorials

Grundlagen von Views in MySQL

Views in einer MySQL-Datenbank bieten die Möglichkeit, eine virtuelle Tabelle basierend auf dem Ergebnis einer SQL-Abfrage zu erstellen. ...

admin

Autor : admin
Kategorie: mySQL-Tutorials

Tutorial veröffentlichen

Tutorial veröffentlichen

Teile Dein Wissen mit anderen Entwicklern weltweit

Du bist Profi in deinem Bereich und möchtest dein Wissen teilen, dann melde dich jetzt an und teile es mit unserer PHP-Community

mehr erfahren

Tutorial veröffentlichen

[Einzelauftrag] Kommentarfunktion

Ich musste meine Bachelorarbeit neben dem Job schreiben und hatte kaum Zeit, mich voll darauf zu konzentrieren. Da entschied ich mich, Hilfe zu su ...

Geschrieben von Gorio am 10.11.2024 20:00:45
Forum: Jobgesuche
Offline für ca. 1 Stunde

Hallo! Wenn Sie Ihre Diplomarbeit schnell fertigstellen müssen, dann kann ich Ihnen diesen Service empfehlen - https://ghostwriter-österreich.at ...

Geschrieben von kukras am 10.11.2024 13:42:08
Forum: Ankündigungen
Eingabe in einer Datenbank

Immer wieder wichtig: Richtig debuggen Man bemerkt, dass ein Skript nicht das tut, was es soll. Man schreibt an den Anfang des Scriptes die Ze ...

Geschrieben von scatello am 08.11.2024 16:34:23
Forum: SQL / Datenbanken
Spam-Bots aussperren - Mailfeld Namen ändern, Honeypot, Timer

Ich glaube kaum, dass sich hier irgendwelche Leute mit den PHP-Codes von OS-Commerce Shopsystem auskennen. Außerdem ist HTTP_POST_VARS veraltet. ...

Geschrieben von scatello am 08.11.2024 16:20:15
Forum: PHP Developer Forum