Webhosting

Managed Webhosting mit PHP 8.1 – welche Vorteile bietet die neue PHP-Version?


Veröffentlicht am 02.02.2022 von DomainFactory

Die Programmiersprache PHP gehört zu den Standards für die Entwicklung dynamischer Websites und Webanwendungen und ist jetzt als PHP 8.1 verfügbar. Die neueste Version der ständig weiter entwickelten Skriptsprache wurde im November 2021 veröffentlicht und bringt eine Reihe interessanter Neuerungen mit. Neben den nützlichen Funktionen dürfen sich Anwender auch über eine verbesserte Leistung freuen. Die Webosting-und Managed Server-Produkte von DomainFactory bieten Ihnen bereits die neue Version PHP 8.1.

Die wichtigsten Vorteile von PHP 8.1 haben wir Ihnen im Folgenden zusammengestellt!

Die neuen Funktionen von PHP 8.1

Nach dem Update laufen Anwendungen vor allem schneller und können eine Reihe neuer und verbesserter Funktionen nutzen.

„inheritance cache“ für mehr Leistung

In der neuen Version ist die Erweiterung opcache optimiert und sorgt für eine bessere Performance. Mit der Funktion „inheritance cache“ ist das Cachen von Links zwischen Klassen möglich. Dies ähnelt der Option in PHP 7.4, verknüpfte Klassen vorladen zu können. Die Verbesserung ermöglicht Leistungssteigerungen von rund fünf bis acht Prozent.

Unterstützung von Enumerationen (Aufzählungen)

Mit dem Release von PHP 8.1 können Programmierer jetzt Enumerationen nutzen. Der Aufzählungstyp hat Ähnlichkeiten zu einer Klasse und ist automatisch ladbar. Mit den Enums lässt sich eine Sammlung konstanter Werte darstellen, sie machen den Code lesbarer und helfen bei der Vermeidung unerwarteter Programmzustände.

Beispiel:

 

enum Status{
case Aktiv;
case InBearbeitung;
case Beendet;
}

 

„readonly“-Eigenschaften

Die Eigenschaft einer Klasse lässt sich jetzt als „readonly“ markieren. In der Folge ist solch eine Property nur einmal initialisierbar und erlaubt anschließend keine Änderung. Wichtig: Der Wert kann nur innerhalb der Klasse vom Konstruktor oder einer anderen Methode zugewiesen werden. Weitere Zuweisungen lösen eine Fehlermeldung aus.

Beispiel:

 

class Beispiel {
public readonly string $textbeispiel;
	public funtion __construct(string $textbeispiel){
	$this→textbeispiel = $textbeispiel;
	}
}
$beispiel = new Beispiel("abcd");

 

Fibers zum Regeln paralleler Abläufe

Bei den sogenannten Fibers handelt es sich um einen Codeblock mit eigenem Stack (eigenen Variablen und eigenem Zustand). Der Stack hat vier Zustände: „started“, „running“, „suspended“ und „terminated“. Der Codeblock lässt sich vom Fiber und vom Hauptcode starten, pausieren oder beenden – und eignet sich zum Umsetzen von Nebenläufigkeiten. Wurde PHP bisher nur für das Schreiben von synchronem Code eingesetzt, soll mit den Fibers nicht mehr zwischen synchronen und asynchronen Funktionen unterschieden werden. Stattdessen können Programmierer unterbrechbare Full-Stack-Funktionen erstellen und Co-Routinen ermöglichen.

Beispiel:

 

$fiber = new Fiber(function (): void {
          $wertNachWiederaufnahme = Fiber::suspend('nach Suspend');
// …
});
$wertNachWiederherstellung = $fiber→start();
$fiber→resume('nach Resume');

 

Der neue Rückgabewert „never“

Für Methoden bzw. Funktionen ist mit „never“ ein neuer Rückgabetyp hinzugekommen. Eine entsprechend deklarierte Funktion hat niemals einen Rückgabewert zurück. Diese gibt stattdessen entweder eine Ausnahme (Exception) zurück oder einen Exit-Call, dessen Code nicht ausgeführt wird.

Beispiel:

 

function ohne_rueckgabewert(string $params): never{
	//code
	exit();
}

 

Unterstützung von Intersection Types

Die Intersection Types sind jetzt verfügbar. Dabei handelt es sich sozusagen um die Gegenstücke der Union Types. Programmierer können Eigenschaften, Parameter oder Rückgabewerte deklarieren und sicherstellen, dass der Wert zu allen deklarierten Typen gehört.

Beispiel:

 

function essen_und_trinken(Essen&Trinken $speisen){…}

 

Hier muss $speisen ein Objekt einer Klasse sein, die sowohl „Essen“ als auch „Trinken“ implementiert, sonst folgt ein Type-Error.

„final“ für Klassenkonstanten

Konstanten in Klassen können Sie jetzt mit „final“ markieren und Unterklassen diese in der Folge nicht mehr ändern.

Beispiel:

 

class Beispiel {
	final public const MEINEKONSTANTE = 1;
}
class SubBeispiel extends Beispiel {
	public const MEINEKONSTANTE = 2;
}

 

Dieser Code bricht mit einer Fehlermeldung, weil SubBeispiel nicht die finale Konstante MEINEKONSTANTE überschreiben kann.

Neue Funktionen: „fsync“ und „fdatasysnc“

In PHP 8.1 sind die zwei neuen Funktionen „fsync“ und „fdatasync“ mit an Bord. Diese haben Ähnlichkeiten mit fflush() und synchronisieren Daten aus dem Buffer auf den Speicher.

  • fflush() wird nach Schreiboperationen verwendet und stellt sicher, dass PHPs interner Buffer an das Betriebssystem übergeben wird.
  • fsync() synchronisiert Änderungen an der Datei inklusive der Metadaten. Es ähnelt fflush() aber weist zusätzlich an, auf das Speichermedium zu schreiben.
  • fdatasync() synchronisiert Daten ohne Metadaten.

Praktisch: die Managed-Hosting und Managed Server von Domainfactory jetzt mit PHP 8.1

Sie haben eine Reihe interessanter Neuerungen kennengelernt. Die vollständige Liste ist länger, sie finden diese auf php.net (Stand November 2021). Während Anwender die neue PHP-Version für Server-Produkte leicht bekommen können, dauert die Umstellung der Shared-Hosting-Produkte bei vielen Anbietern deutlich länger. Mit DomainFactory profitieren Sie schon jetzt von den neuen Funktionen, denn die Managed-Hosting- und Managed Server-Pakete stellen die PHP-Version 8.1 bereits standardmäßig zur Verfügung. Nutzen Sie diese neuen Möglichkeiten zu Ihrem Vorteil!

 

Der Autor:


Als Qualitätsanbieter überzeugen wir mit HighEnd-Technologie und umfassenden Serviceleistungen. Mit mehr als 1,3 Millionen verwalteten Domainnamen gehören wir zu den größten Webhosting-Unternehmen im deutschsprachigen Raum.