PHP 8.1 mit ionCube Loader verfügbar

Das nun seit einiger Zeit veröffentlichte PHP 8.1 steht nach einigen Aktualisierungen ab sofort für alle Kunden zur Verfügung! Die neue Version verspricht bis zu einem Viertel schnellere Ladezeiten und bringt gleich eine Reihe weiterer Neuheiten für objektorientierte Entwicklung mit.

Wir haben die Veröffentlichung von PHP 8.1 intern auf den dazu passenden ionCube Loader abgestimmt, welcher für PHP 8.0 aus technischen Gründen vom Hersteller übersprungen, und nach einiger Wartezeit, wie versprochen, nun auch für PHP 8.1 bereitgestellt wurde.

Daher ist die Aktivierung des ionCube Loaders nun wieder regulär unter https://my.bplaced.net/php ab bplaced max möglich.

Weitere interessante Neuerungen kurz zusammengefasst:

Enum als benutzerdefinierte Aufzählungen

Diese neue Funktion ist recht interessant, welche mit ihrem Konzept eher aus anderen Programmiersprachen bekannt ist und nun auch in PHP eingeführt wurde.

Kurzum, ist dies mit einem Beispiel am besten erklärt: beim booleschen Datentyp kennt man lediglich 2 Zustände (mal abgesehen von NULL), nämlich true und false. Was jedoch, wenn man in einer Variable mehrere Zustände ausdrücken möchte?

Oft wird hierzu einfach ersatzweise ein Zahlenwert verwendet oder ein Array, dessen Schlüssel bzw. Werte oder Zahlen dann einem dieser Zustände entsprechen. Ganz anders wird dies nun mit Enums gelöst:

enum Haustier : string
{
    case Hund     = 'Caesar';
    case Katze    = 'Kitty';
    case Krokodil = 'Croco';
}

print_r(Haustier::Hund);

# obiges ergibt:

Haustier Enum:string
(
    [name] => Hund
    [value] => Caesar
)

Damit können Typen ohne Arrays, Konstanten oder anderen komplexeren Vorgehensweisen nun übersichtlicher und wartbarer verwendet werden – für z.B. Produkttypen, Geschlechter, Ausrichtungen und deren Farben, oder eben Haustiere.

Neues Bildformat für GD: AVIF

Das neue Format AVIF, kurz für AV1 Image File, ist recht neu und zeichnet sich durch recht gute Komprimierung (daher kleineren Dateigrößen) aus und unterstützt dabei neben Transparenz auch HDR.

Das Format ist offen, standardisiert und lizenzfrei und wird von modernen Webbrowsern bereits seit einiger Zeit unterstützt, siehe dazu auch https://caniuse.com/avif. Die Verwendung ist derzeit nur eingeschränkt möglich, da einige Systemkomponenten dazu noch angepasst werden müssen, hier jedoch eine Vorschau:

# die GD-Funktion imageavif():

imageavif(
    GdImage $image, // ein GdImage-Objekt, z.B. von imagecreatetruecolor()
    resource|string|null $file = null, // Pfad oder Stream
    int $quality = -1, // 0-100, 30 ist Standard - je höher desto besser die Bildqualität
    int $speed = -1 // 0-10, 6 ist Standard, beeinflusst u.a. die Dateigröße
): bool

# Beispiel für die Erstellung:

header('Content-Type: image/avif');
$image      = imagecreatetruecolor(235, 40);
$image_bg   = imagecolorallocate($image,  11,  95, 180);
$text_color = imagecolorallocate($image, 255, 255, 255);
imagestring($image, 5, 16, 12,  'Willkommen bei bplaced!', $text_color);
imageavif($image);
imagedestroy($image);

Mehr Tempo für komplexe Entwicklungsumgebungen

Durch die schnellere Auflösung von Klassennamen und der Verwendung eines Vererbungscaches, werden nun gerade anspruchsvollere Bibliotheken und Funktionsklassen schneller verarbeitet. Denn durch diese Optimierungen entfällt teils mehrfache Ausführung von Dateioperationen und der Verarbeitung von Klassen.

Laut php.net führt das im Schnitt zu etwa 23% beschleunigter Ausführung von z.B. Symfony und auch ein wenig für WordPress. Im Prinzip bedeutet das: je komplexer, desto schneller – im Vergleich zu früheren PHP-Versionen.

Die jeweils gewünschte Version kann unter https://my.bplaced.net/php aktiviert werden, PHP 8.1 wird für alle neu erstellten Konten automatisch ausgewählt. Alle weiteren Informationen können unter https://phpinfo.bplaced.net/ eingesehen werden.

Abonnieren
E-Mail senden für
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x