Die neuen und verbesserten Funktionen von PHP 7.2.0
Veröffentlicht: 2018-03-03Die neue Version von PHP 7.2.0 enthält viele großartige Ergänzungen. Es bietet mehr Funktionen, neue Verbesserungen und eine bessere Funktionalität. Es ermöglicht dem Benutzer, besseren Code zu schreiben und mehrere interessante Sprachfunktionen wie nie zuvor zu verwenden. In diesem Beitrag werden wir uns die neuesten Aspekte ansehen, die in der neuesten Iteration von PHP eingeführt wurden.
Das Update bietet viele neue Verbesserungen. Es verfügt über viele Funktionen, die eine bessere Codierung gewährleisten. Zu den neuen Funktionen in PHP 7.2.0 gehören:
- Hinweis zur Objekttypisierung
- Zählen verschiedener nicht zählbarer Objekte
- Konvertierung von numerischen Tasten in Arraycasts/Objekt
- Mcrypt-Erweiterung entfernt
- Argon2 im Passwort-Hash
- HashContext als Objekt
- Bessere TLS-Konstanten für verschiedene vernünftige Werte
- Neue Natriumerweiterung
Wie wir wissen, lieben oder hassen Webentwickler im Allgemeinen die PHP-Sprache. Jeder, der PHP wirklich gerne verwendet, wird diese neue Codierungslösung definitiv lieben.
Wenn Sie ein Webentwickler sind, der gerne mit PHP arbeitet, dann lesen Sie weiter, während wir die wichtigsten neuen Funktionen des PHP 7.2.0-Updates besprechen.
Kernverbesserungen in PHP 7.2.0
Hier sind einige der wichtigsten Verbesserungen im neuesten Update von PHP.
Die Lösung für den Trait Properties Bug
Bis zur Veröffentlichung von PHP 7.2.0 gab es einen nicht behobenen Eigenschaftsfehler. Wenn im neuesten Update eine Eigenschaft eine Eigenschaft definiert, kann eine Klasse keine Eigenschaft mit demselben Namen definieren, es sei denn, sie ist kompatibler (gleicher Anfangswert und gleiche Sichtbarkeit). Andernfalls wird ein schwerwiegender Fehler ausgegeben.
Im Gegensatz zu PHP 7 und PHP 7.1 können wir also jetzt damit rechnen, einen schwerwiegenden Fehler zu erhalten. Dieses Verhalten wurde im letzten Update von PHP behoben und es funktioniert jetzt so, wie es in der PHP-Dokumentation angegeben ist. Jetzt können Sie einen strengen Vergleich durchführen. Wenn Sie das Skript in PHP 7.2 ausführen, werden Sie über einen schwerwiegenden Fehler benachrichtigt.
Deklaration des Rückgabetyps
Das jüngste Update von PHP 7 fügt weitere Unterstützung für Deklarationen von Rückgabetypen hinzu. Genau wie Argumenttypdeklarationen gibt dieser Deklarationstyp auch den Typ des Werts an, der wahrscheinlich von einer Funktion zurückgegeben wird. Für die Deklaration des Rückgabetyps werden die gleichen Typen angeboten wie für die Deklaration des Argumenttyps.
In PHP 7.2.0 ist es einem Benutzer möglich, die Deklaration des Rückgabetyps in Bezug auf den Objektdatentyp zu verwenden.
Darüber hinaus wirkt sich die strikte Typisierung auch auf die Rückgabetypdeklarationen aus. In Anbetracht des standardmäßigen schwachen Modus werden alle zurückgegebenen Werte auf den genauen Typ gezwungen (falls sie unterschiedlich sind und nicht bereits diesen Typ haben). Im starken Modus müssen jedoch alle zurückgegebenen Werte vom genauen/korrekten Typ sein. Andernfalls wird ein TypeError empfangen.
Eine untergeordnete Methode sollte jedoch die Deklaration des Rückgabetyps mit der der übergeordneten Methode abgleichen, wenn Sie eine übergeordnete Methode überschreiben. Wenn jedoch ein Rückgabetyp nicht von der übergeordneten Methode definiert wird, kann er von einer untergeordneten Methode definiert werden.
Generatorrückgabeausdrücke
Diese Funktion von PHP baut auf einer in PHP 5.5 veröffentlichten Funktion auf, die als Generatorfunktionalität bezeichnet wird. Es ermöglicht die Verwendung einer return-Anweisung im Generator und die Rückgabe des endgültigen Ausdrucks. Die Rückgabe per Referenz ist jedoch eingeschränkt. Der Wert kann mit einer neuen Generator-Methode " getReturn()" abgerufen werden, die nur verwendet wird, wenn der Generator mit der Ausgabe von Werten fertig ist.
Dennoch ist die Fähigkeit, einen endgültigen Wert mithilfe eines Generators eindeutig zurückzugeben, definitiv eine praktische Fähigkeit. Dies liegt daran, dass ein Endwert durch einen Generator vollständig zurückgegeben werden kann, was insbesondere von einem Client-Code gehandhabt werden kann, der den Generator ausführt. Im Vergleich dazu ist dies viel einfacher, als einen Client-Code zu zwingen, zuerst zu prüfen, ob der endgültige Wert geliefert wird oder nicht, und den Wert dann besonders zu behandeln.
Sitzungsoptionen
Session_start() erkennt jetzt viele Optionen, die die verschiedenen Session-Konfigurationsdirektiven überschreiben, die in php.ini gesetzt sind.
Diese Optionen wurden auch erweitert, um session.lazy_write zu erleichtern, das standardmäßig eingeschaltet bleibt und PHP dazu bringt, jede Sitzungsdatei nur mit der Änderung der Sitzungsdaten und read_and_close zu überschreiben. Dies ist eine Option, die nur an session_start() weitergegeben werden kann, um zu bestätigen, dass die Sitzungsdaten gelesen werden müssen und die Sitzung dann sofort geschlossen werden muss, während sie unverändert bleibt.
Sicherheitsverbesserungen in PHP 7.2.0
Hier sind die kürzlich in PHP 7.2.0 implementierten Sicherheitsverbesserungen.
Argon 2-Algorithmus im Passwort-Hash
Argon 2, der Gewinner des Passwort-Hashing-Wettbewerbs im Jahr 2005, ist ein starker Hash-Algorithmus. Argon2 ist dabei, als universeller Internetstandard anerkannt zu werden. Derzeit gilt der Algorithmus als kostengünstiger und sicherer als Bcrypt, ein weiterer Hash-Algorithmus. Das neu eingebaute Argon2 kann über die Funktion – password_hash() genutzt werden.
Während Bcrypt nur einen Kostenfaktor berücksichtigt, berücksichtigt das neue Argon2 die folgenden drei Kostenfaktoren:
- Ein Zeitaufwand – definiert die Anzahl der Iterationen des Hash-Algorithmus
- Ein Speicheraufwand – definiert die KiB-Nummern, die beim Hashing verwendet werden müssen.
- Ein Parallelitätsfaktor – legt die Anzahl der parallelen Threads fest, die während des Hashings verbraucht werden.
Die Standardkostenfaktoren werden durch die drei neuen Konstanten wie folgt definiert:
- PASSWORD_ARGON2_DEFAULT_TIME_COST
- PASSWORD_ARGON2_DEFAULT_MEMORY_COST
- PASSWORT_ARGON2-STANDARD-THREADS
Lib-Natrium ersetzt Mcyrpt
Eine weitere wichtige Verbesserung in PHP 7.2.0 ist das Entfernen der herkömmlichen kryptografischen Mcrypt-Bibliothek aus dem PHP-Kern und das Hinzufügen von Libsodium.
Mcrypt galt als Abandonware und Einschränkung des Sprachwachstums. Aus diesem Grund wurde es in PHP 7.2.0 durch Libsodium ersetzt. Libsodium ist eine fortschrittliche Kryptographie-Bibliothek, die authentische Verschlüsselung zusammen mit effizienter Elliptische-Kurven-Kryptographie bietet.
Libsodium besteht aus sorgfältig ausgewählten Algorithmen, die von Sicherheitsexperten implementiert werden, um Seitenkanal-Schwachstellen zu verhindern. Mit anderen Worten, Libsodium ist eine sprach- und plattformübergreifende Bibliothek für Entschlüsselung, Verschlüsselung, Passwort-Hashing, Signatur und mehr.
Veraltete Features und Funktionen
Im Folgenden sind einige der veralteten Funktionen und Merkmale von PHP 7.2.0 aufgeführt, die voraussichtlich vor der Veröffentlichung von PHP 8.0 entfernt werden.
Gmp_random() wird als plattformabhängiges Feature angesehen und wird wahrscheinlich veraltet sein. Stattdessen werden gmp_random_rage() und gmp_random_bits() verwendet.
(nicht festgelegt) Die Umwandlung ist ein weiterer Ausdruck, der normalerweise null zurückgibt und daher als nutzlos betrachtet wird.
Each() wird verwendet, um über ein foreach() wie ein Array zu iterieren, aber foreach() wird wegen seiner höheren Geschwindigkeit bevorzugt.
Das spl_autoload_register in PHP 5.1 hat die _autoload- Funktion ersetzt. Aber jetzt tritt wahrscheinlich eine Verwerfung auf, wenn die Funktion während der Kompilierung angetroffen wird.
mbstring .fucc_overload wurde ebenfalls als veraltet markiert.
Die Funktion assert() bestätigt die gegebene Behauptung und ergreift geeignete Maßnahmen, wenn ein FALSE- Ergebnis vorliegt. Die Verwendung von assert() mit String-Argumenten wird als veraltet markiert, da sie eine RCE-Schwachstelle verursacht.
Die Variable $php_errormsg wird im lokalen Gültigkeitsbereich erstellt, während ein nicht schwerwiegender Fehler empfangen wird. Aber jetzt, mit den Releases von PHP 7.2.0, werden stattdessen error_clear_last und error_get_last verwendet.
$errcontext wird wahrscheinlich veraltet sein, da diese Funktionalität Probleme bei der Optimierung verursacht. Da der $errcontext verwendet wird, um alle Objekte und Referenzen im aktuellen Gültigkeitsbereich zu ändern, wird diese Funktionalität kaum verwendet.
Create_function() hat viele Sicherheitsprobleme. Darüber hinaus hat es auch Probleme mit der Speichernutzung und schlechter Leistung.
Warum sollte ein WordPress-Entwickler PHP 7.2.0 verwenden?
Die jüngsten Upgrades auf PHP bringen neue Funktionen und verbesserte Sicherheitsmaßnahmen. Dies kann Faktoren wie moderne Kryptographie, Ergänzungen zu Kernfunktionen und eine schnellere Ladegeschwindigkeit für verschiedene Websites umfassen.
Vorteile der Verwendung von PHP
PHP ist eine hochgradig kompatible Sprache, die mit fast allen globalen Standards für Datenbanken und Server verwendet werden kann (dh PostgreSQL, MySQL, Sybase, Oracle, Microsoft SQL Server und Informix). Es bietet eine schnelle Leistung, die von einer Open-Source-Community unterstützt wird.
Es wird für eine Vielzahl von Zwecken wie das Generieren von Dateien und dynamischen Seiten verwendet. Mit PHP können Sie Informationen in einer Site-Datenbank verwalten und speichern. Es ermöglicht Benutzern, Daten mithilfe von Sicherheitsfunktionen zu verschlüsseln und den unbefugten Zugriff auf Websites einzuschränken.
PHP wird von vielen renommierten Websites wie Yahoo, Facebook und Wikipedia verwendet.
Noch wichtiger ist, dass das neueste Update von PHP 7.2.0 wichtige Sicherheitsverbesserungen, aufregende neue Funktionen und Leistungsverbesserungen bietet.
Die Leistung von PHP 7.2.0
Laut Phoenix-Benchmarks ist PHP 7.2.0 13 % schneller als 7.1 und fast 20 % schneller als 7.0. Im Vergleich zu PHP 2.6 (immer noch von 40 % der PHP-Benutzer verwendet) ist es fast 25 % schneller.
Es gibt viele Tests, die diese Statistiken und Erkenntnisse unterstützen. Der offizielle PHP-Benchmark zeigt, dass PHP 7 doppelt so effizient und doppelt so schnell ist wie 5.6. PHP 7 hat die halbe Latenz. Auch andere Benchmarks wie Kinsta deuten darauf hin, dass PHP 7 bis zu dreimal schneller sein könnte als frühere Versionen.
Wie oben besprochen, ist der Hauptgrund für die verbesserte Leistung von PHP 7.2.0 die Einbeziehung erweiterter Funktionen und die Abwertung alter Funktionen. Genau das macht diese Version von PHP perfekt für WordPress-Benutzer. Entwickler müssen jedoch den Code überprüfen und die veralteten Funktionen aktualisieren, um sicherzustellen, dass alles kompatibel ist.
Die Sicherheitsunterstützung von PHP 7.2.0
PHP 7.2.0 bietet keine Sicherheitsunterstützung mehr. Der kritische Support wird jedoch noch bis Ende 2018 verfügbar sein. Die PHP-Community bietet keinen Support mehr für kleinere Probleme und Fehler. Die gute Nachricht ist, dass das neueste Update von PHP 7.2.0 sicherstellen wird, dass erweiterte Sicherheitsupdates ordnungsgemäß funktionieren, und das Projekt kontinuierlich von der PHP-Community unterstützt wird.
Libsodium ist sowohl das wichtigste als auch das am besten verbesserte Feature, das vom älteren PHP auf PHP 7.2.0 migriert wurde. Glücklicherweise ist Libsodium sehr einfach zu aktualisieren.
Wenn Sie planen, auf PHP 7.2.0 zu aktualisieren, stellen Sie sicher, dass Ihr Code aus Integrations- und Einheitentests besteht. Solche Tests helfen dabei, anwendungsbezogene Probleme zu erkennen, bevor sie als Fehler in einer Live-Umgebung auftreten.
Kurzgesagt
PHP 7.2.0 ist definitiv ein großes Upgrade im Vergleich zu früheren Versionen wie PHP 5.6. Wenn Sie den Code von PHP 5.6 auf PHP 7 aktualisieren, werden Sie möglicherweise auf einige Inkompatibilitäten stoßen, sowohl in den Bibliotheken, von denen der Code abhängt, als auch im Code selbst. Die Vorteile der Einführung von PHP 7.2 werden Ihre Bemühungen jedoch lohnen.
Da PHP 7.2 viel schneller ist als die älteren PHP-Versionen, können Benutzer ihren Website-Benutzern einen verbesserten Service bieten, indem sie die erweiterten Codes der PHP-Sprache implementieren.
Sind Sie also bereit, auf das neue PHP 7.2 umzusteigen? Wenn Sie es noch nicht aktualisiert haben, ist jetzt ein guter Zeitpunkt, um mit der Umstellung zu beginnen. Es ist an der Zeit, die Codes zu überprüfen und Ihre Skripte zu aktualisieren.
Teilen Sie uns im Kommentarbereich unten mit, wie Sie die neuen verbesserten Features und Funktionen von PHP 7.2.0 fanden!