Neuerungen in der neuen PHP 8 Hauptversion

php 8 release

Das PHP-Entwicklungsteam hat PHP 8 am 26. November 2020 veröffentlicht. Dieses letzte wichtige Update bringt viele neue Funktionen und wesentliche Optimierungen für Software Lösungen im Vergleich zu früheren Versionen. Die 8. Version von PHP hat die Schaffung neuer Funktionen als Schwerpunkt. Named Arguments, Attribute, Constructor Property und JIT sind einige der neuen Hauptfunktionen.

In diesem Artikel werfen wir einen Blick auf diese Neuerungen und was sie sowohl für die Nutzer als auch für PHP Programmierer bedeuten.

Named arguments

Named Arguments sind auftragsunabhängig und selbstdokumentiert und ermöglichen das Überspringen von optionalen Parametern. Sie ermöglichen auch die Benennung von Parametern beim Aufrufen einer Funktion. Diese Funktion ist bereits in anderen Programmiersprachen vorhanden.

Anhand Named Arguments können Entwickler die Standardwerte, die sie ändern möchten, lediglich überschreiben. Auf diese Weise müssen sie nicht mehr alle Standardwerte angeben. Außerdem können Named Arguments mit den Positionsargumenten kombiniert werden.

JIT: Just-In-Time Compilation

Die Abkürzung JIT steht für „Just in Time“. Im Rahmen der Leistungsverbesserung enthält PHP 8 zwei JIT-Kompilierungs-Engines: Tracing JIT und Function JIT. Die typische Anwendungsleistung ähnelt der früheren PHP-Version, die Leistung für CPU-intensive Anwendungen wird jedoch gesteigert.

Die JIT-Kompilierung, auch als „dynamische Übersetzung“ bekannt, ist eine gute Methode, um die Leistung erheblich zu verbessern. Sie besteht aus der Ausführung von Computercode, der direkt während der Ausführung eines Programms kompiliert wird. Dafür braucht man deutlich weniger Ressourcen. Der JIT-Compiler erhöht die Leistung um mehr als 45 Prozent.

Attributes

Diese neue Funktion ermöglicht einem PHP programmierer das Hinzufügen strukturierter Metadaten direkt mit der nativen PHP-Syntax zusammen, ohne PHP Doc-Annotationen zu verwenden. Attribute können auf Klassen, Funktionen und Schnittstellen angewendet werden. usw. Ein ähnliches Konzept gibt es bereits in anderen Programmiersprachen.

SUCHEN SIE ZERTIFIZIERTE ENTWICKLER FÜR IHR PROJEKT?
  • Zertifizierte Entwickler
  • Günstige Preise
  • Schneller Einstieg
  • Transparenz und Kommunikation
  • Sicherer Vertrag mit EU Firma
  • Langjährige Erfahrung

Union types

Mit Unionstypen können mehr Typinformationen aus PHPDoc-Annotationen in Funktionssignaturen verschoben werden. Der Einsatz von Unionstypen ist sehr vorteilhaft z. B.: Die Syntax wird erheblich vereinfacht und optimiert, das Risiko, dass Typinformationen veraltet sind, ist nun gering und man erkennt schneller die Fehler bei der PHP Programmierung. Trotzdem werden arbitrary union types derzeit nicht unterstützt.

Constructor Property Promotion

Als Ergebnis einer laufenden Diskussion über die Verbesserung der Objektergonomie in PHP, schlägt der Constructor Property Promotion RFC eine neue und detaillierte Syntax vor, die die Eigenschaftsdeklaration vereinfacht und Programmerstellung beschleunigt. Dieser Vorschlag bezieht sich nur auf Promoted Parameter – i.e die Parameter mit  public, private oder protected Sichtbarkeitsmerkmalen.

Weak Maps

PHP hat einen Garbage Collector, der die Objekte löscht. Die für längere Zeit nicht verwendet werden. Das vereinfacht die Programmgestaltung und erhöht die Leistung. Ebenfalls, verhindert diese Funktion, dass das Programm unnötigen Speicherplatz beansprucht.

Weak map ist eine Sammlung von Daten (Objekten ) die von Garbage Collector  gelöscht werden können. Sie kommen normalerweise nur in den komplexen Anwendungen zum Einsatz. Für einfache PHP-Programme spielen sie keine Rolle.

Jetzt anhand Weak Maps ist es möglich, Verweise zu verwenden, die Garbage Collector nicht verhindern, Objekt zu entfernen.

Trailing Commas in Parameter List

Trailing Kommas sind Kommas, die an Listen von Elementen in verschiedenen Kontexten angehängt werden. PHP 7.2 führte Trailing Kommas in der Listensyntax ein, PHP 7.3 führte Trailing Kommas in List Syntax ein. PHP 8 führt jetzt Trailing Kommas in Parameterlisten mit Funktionen, Methoden und Abschlüssen ein.

Null-Safe Operator

Der Null-Safe-Operator ist eine neue Syntax in PHP 8.0, die PHP eine optionale Verkettungsfunktion bietet. Der Operator ? -> null-safe kann dazu beitragen, übermäßige isset () – und ternäre Checks zu reduzieren.

Type Annotations

In PHP 8 werden für alle internen Funktionen und Methoden korrekte Typanmerkungen hinzugefügt.

Konvertation von Datum- und Zeitangaben

PHP unterstützt viele unterschiedliche Typen von Datum- und Zeitangaben.  Die PHP 8 Neuerung betrifft nur Datumsangaben der Typen DateTime und DateTimeImmutable. Nun ist es möglich eine Datumsangabe des Typs DateTime in den Typ DateTimeImmutable zu konvertieren, und vice versa.

Neue Klassifizierung für Programmwarnungen

Bislang gab es viele Fehler, die nur eine Warnung oder Meldung gezeigt haben. Dies wurde nun aktualisiert. Eine vollständige Liste der neuen PHP-Fehlermeldungen finden Sie in der Dokumentation

Neue PHP-FunktionenPHP 8 bringt mehrere neue Funktionen in die Sprache:

  1. str_contains
  2. str_starts_with() and str_ends_with()
  3. get_debug_type

Zusätzliche RFCs

Hier ist eine kurze Liste weiterer Verbesserungen für die Web Entwicklung, die PHP 8 liefert:

  1. Stringable-Schnittstelle: Dieser RFC führt eine Stringable-Schnittstelle ein, die automatisch den Klassen zugewiesen ist, die die Methode __to String () implementieren. Das Hauptziel hierbei ist die Verwendung des Union Typs string | Stringable.
  2. Neue DOM Living Standard-APIs in ext / dom: Dieser RFC schlägt vor, den aktuellen DOM Living Standard in die PHP DOM-Erweiterung zu implementieren, indem neue Schnittstellen und öffentliche Eigenschaften eingeführt werden.
  3. Statischer Return Typ: PHP 8 führt die Verwendung von statisch als Return Typ neben self and parent Typs ein.
  4. Optimierungen der Variablensyntax: Dieser RFC behebt einige verbleibende Inkonsistenzen in der Variablensyntax von PHP.

Als Full-Stack-Entwickler verwenden wir verschiedene Tools und Technologien für die Back-End-Entwicklung, die Front-End-Implementierung und die Qualitätssicherung. Während des Entwicklungsprozesses nutzen wir die modernsten PHP-Frameworks, Content-Management-Systeme, JavaScript-Bibliotheken, Markup-Sprachen, Front-End-Frameworks, Tools und Datenbanken.

Unsere PHP Entwickler können Ihnen dabei helfen, die beste Vorgehensweise für Ihr Projekt zu finden.

Wollen wir zusammen arbeiten!