1<?php 2 3return [ 4 'common_header' => 'PHP 8.1 ist ein Minor-Update der Sprache PHP und beinhaltet viele neue Features und Verbesserungen. Unter anderem Enumerations, Readonly-Properties, First-Class Callable Syntax, Fibers, Intersection-Types, Performance-Optimierungen.', 5 'main_title' => 'Released!', 6 'main_subtitle' => 'PHP 8.1 ist ein Minor-Update der Sprache PHP.<br class="display-none-md"> Es beinhaltet viele neue Features und Verbesserungen.<br>Unter anderem Enumerations, Readonly-Properties, First-Class Callable Syntax, Fibers, Intersection-Types, Performance-Optimierungen.', 7 'upgrade_now' => 'Wechsle jetzt zu PHP 8.1!', 8 'documentation' => 'Doc', 9 10 'enumerations_title' => 'Enumerations', 11 'enumerations_content' => '<p>Du kannst nun Enums statt Konstanten für mehr Typensicherheit und direkter Validierung nutzen.</p>', 12 13 'readonly_properties_title' => 'Readonly-Properties', 14 'readonly_properties_content' => '<p>Readonly-Properties können nach einer Initialisierung nicht mehr verändert werden.<br/>Sie sind ein ideales Werkzeug um Value-Objekte und Data-Transfer-Objekte zu erstellen.</p>', 15 16 'first_class_callable_syntax_title' => 'First-Class Callable Syntax', 17 'first_class_callable_syntax_content' => '<p>Durch die sogenannte First-Class Callable Syntax kannst du eine Referenz zu jeder beliebigen Funktion erhalten.</p>', 18 19 'new_in_initializers_title' => 'New in Initialisierungen', 20 'new_in_initializers_content' => '<p>Objekte können nun als Default-Wert für Parameter, statische Variablen, Konstanten, so wie als Argument für Attribute genutzt werden.</p> 21 <p>Dies ermöglicht nun auch die Nutzung von <strong>verschachtelten Attributen</strong>.</p>', 22 23 'pure_intersection_types_title' => 'Pure-Intersection-Types', 24 'pure_intersection_types_content' => '<p>Nutze die Intersection-Types, wenn du sicherstellen möchtest, dass das übergebene Objekt mehrere Typen implementieren.</p> 25 <p>Es ist aktuell nicht möglich eine Kombination aus Intersection- und Union-Types zu nutzen, wie z.B. <code>A&B|C</code>.</p>', 26 27 'never_return_type_title' => 'Der Rückgabetyp Never', 28 'never_return_type_content' => '<p>Eine Funktion mit dem Rückgabetyp <code>never</code> gibt an, dass sie keinen Rückgabewert besitzt und die Funktion entweder eine Exception wirft oder das Script durch <code>die()</code>, <code>exit()</code>, <code>trigger_error()</code>, oder einer ähnlichen Funktion terminiert wird.</p>', 29 30 'final_class_constants_title' => 'Final Klassen Konstanten', 31 'final_class_constants_content' => '<p>Es ist nun möglich Klassen Konstanten als final zu definieren, sodass diese in einer Vererbung nicht überschrieben werden können.</p>', 32 33 'octal_numeral_notation_title' => 'Explizite Oktalsystem-Zahl Notation', 34 'octal_numeral_notation_content' => '<p>Du kannst nun Oktalsystem-Zahlen explizit durch einen <code>0o</code>-Prefix angeben.</p>', 35 36 'fibers_title' => 'Fibers', 37 'fibers_content' => '<p>Fibers sind eine grundlegende Funktionalität zur Implementierung von verzahnten Abläufen. Sie sind dazu gedacht Code-Blöcke zu erstellen, die pausiert und wiederaufgenommen werden ähnlich wie die Generator-Implementierung, jedoch von überall aus. Fibers selbst stellen keine Nebenläufigkeit bereit und benötigen somit eine Event-Loop Implementierung. Aber sie ermöglichen die gemeinsame Nutzung einer API in einem blockierenden und nicht blockierenden Kontext.</p><p>Fibers können dazu dienen, Funktionen wie z.B. <code>Promise::then()</code> oder Generator basierte Koroutinen zu ersetzen. Generell wird davon ausgegangen, dass Bibliotheken-Entwickler eine Abstraktion um die Fibers herum bauen werden, sodass man selten in Berührung mit den Fibers kommen wird.</p>', 38 39 'array_unpacking_title' => 'Entpacken von Arrays mit string-basierten Keys', 40 'array_unpacking_content' => '<p>PHP unterstützte bereits das Entpacken von Arrays mit int-basiertem Key in andere Arrays. Jetzt ist es auch möglich Arrays mit einem string-basiertem Key oder auch einer Kombination aus beiden Varianten zu entpacken.</p>', 41 42 'performance_title' => 'Performance-Optimierungen', 43 'performance_chart' => '<strong>Symfony Demo App Request Zeit</strong><br> 44 25 aufeinanderfolgende Läufe, 250 Requests (sek)<br> 45 (kleiner ist besser)<br>', 46 'performance_results_title' => 'Das Ergebnis (Relativ zu PHP 8.0):', 47 'performance_results_symfony' => '23.0% schnellere Symfony Demo', 48 'performance_results_wordpress' => '3.5% schnelleres WordPress', 49 'performance_related_functions_title' => 'Performance relevante Features in PHP 8.1:', 50 'performance_jit_arm64' => 'JIT Backend für ARM64 (AArch64)', 51 'performance_inheritance_cache' => 'Vererbungscache (verhindern das Relinken von Klassen in bei jedem Request)', 52 'performance_fast_class_name_resolution' => 'Schnelleres auflösen von Klassennamen (verhindern von Kleinschreibungsumwandlung und Hash Lookups )', 53 'performance_timelib_date_improvements' => 'timelib und ext/date Performance-Optimierungen', 54 'performance_spl' => 'SPL Dateisystem Iteratoren-Optimierungen', 55 'performance_serialize_unserialize' => 'Serialisierung- / Deserialisierung-Optimierungen', 56 'performance_internal_functions' => 'Einige Optimierungen an internen Funktionen (get_declared_classes(), explode(), strtr(), strnatcmp(), dechex())', 57 'performance_jit' => 'JIT Verbesserungen und Korrekturen', 58 59 'other_new_title' => 'Neue Klassen, Interfaces und Funktionen', 60 'other_new_returntypewillchange' => 'Neues Attribut <code>#[ReturnTypeWillChange]</code>.', 61 'other_new_fsync_fdatasync' => 'Neue Funktionen <code>fsync</code> und <code>fdatasync</code>.', 62 'other_new_array_is_list' => 'Neue Funktion <code>array_is_list</code>.', 63 'other_new_sodium_xchacha20' => 'Neue Sodium XChaCha20 Funktionen.', 64 65 'bc_title' => 'Veraltete Funktionalität und inkompatible Änderungen zu vorherigen PHP Versionen', 66 'bc_null_to_not_nullable' => 'Übergabe von null an nicht null-fähige interne Funktionsparameter ist veraltet.', 67 'bc_return_types' => 'Interne PHP Klassen-Methoden besitzen nun Rückgabetypen', 68 'bc_serializable_deprecated' => 'Das <code>Serializable</code> Interface ist nun veraltet.', 69 'bc_html_entity_encode_decode' => 'HTML-Entitäten en/decode Funktionen verarbeiten und ersetzen einfache Anführungszeichen im Standard.', 70 'bc_globals_restrictions' => 'Restriktionen an der <code>$GLOBALS</code> Variable.', 71 'bc_mysqli_exceptions' => 'MySQLi: Der Standard Error-Modus wirft nun Exceptions.', 72 'bc_float_to_int_conversion' => 'Implizite nicht kompatible Float zu Int Konvertierung ist veraltet.', 73 'bc_finfo_objects' => 'finfo Erweiterung: <code>file_info</code> nutzt nun das finfo-Objekt statt einer resource.', 74 'bc_imap_objects' => 'IMAP: imap nutzt nun das <code>IMAP\Connection</code> Objekt statt des resource-Typen.', 75 'bc_ftp_objects' => 'FTP Erweiterung: Nutzt nun das <code>FTP\Connection</code> Objekt statt des resource-Typen.', 76 'bc_gd_objects' => 'GD Erweiterung: Die Klasse <code>GdFont</code> ersetzt nun den zuvor genutzten resource-Typ.', 77 'bc_ldap_objects' => 'LDAP: Die resource-Typen wurden auf <code>LDAP\Connection</code>, <code>LDAP\Result</code> und <code>LDAP\ResultEntry</code> umgestellt.', 78 'bc_postgresql_objects' => 'PostgreSQL: Die resource-Typen wurden auf <code>PgSql\Connection</code>, <code>PgSql\Result</code> und <code>PgSql\Lob</code> umgestellt.', 79 'bc_pspell_objects' => 'Pspell: Der resource-Typ von pspell und pspell config wurden auf <code>PSpell\Dictionary</code> und <code>PSpell\Config</code> umgestellt.', 80 81 'footer_title' => 'Bessere Performance, verbesserte Syntax und verbesserte Typensicherheit.', 82 'footer_content' => '<p> 83 Für den direkten Code-Download von PHP 8.1 schaue bitte auf der <a href="https://www.php.net/downloads">Downloads</a> Seite vorbei. 84 Windows Pakete können auf der <a href="https://windows.php.net/download">PHP für Windows</a> Seite gefunden werden. 85 Die Liste der Änderungen ist im <a href="https://www.php.net/ChangeLog-8.php#PHP_8_1">ChangeLog</a> festgehalten. 86 </p> 87 <p> 88 Der <a href="/manual/de/migration81.php">Migration Guide</a> ist im PHP Manual verfügbar. Lies dort 89 nach für detaillierte Informationen zu den neuen Funktionen und inkompatiblen Änderungen zu vorherigen PHP 90 Versionen. 91 </p>', 92]; 93