PHP 7.3 RC4

Vierter Release-Kandidat für PHP 7.3: Was ist neu?
Keine Kommentare

Der vierte Release-Kandidat für die nächste PHP-Version 7.3 ist da. Wir schauen uns an, woran das Core-Team gearbeitet hat.

So wurden auch im RC4 wieder etliche Bugs gefixt. Beispielsweise erzeugten die phpize und ./configure Skripts überflüssige .deps-Dateien im Extension-Verzeichnis – ein Fehler, der nun nicht mehr auftritt. In der Date-Komponente wurden Bruchzahlen bei der Nutzung von timelib_do_rel_normalize() nicht normalisiert, was zu falschen DateInterval-Werten führen konnte. Auch diese Ungenauigkeit ist durch die Nutzung von do_range_limit_fraction() behoben. XML-Nutzer dürfen sich zudem über die Optionen SKIP_TAGSTART und SKIP_WHITE, die nun unterstützt werden.

Die Release Notes für PHP 7.3 RC4 sehen folgendermaßen aus:

  • Core:
    • Fixed bug #77035 (The phpize and ./configure create redundant .deps file).
    • Fixed bug #77041 (buildconf should output error messages to stderr)
  • Date:
    • Updated timelib to 2018.01RC1 to address several bugs
    • Fixed bug #75577 (DateTime::createFromFormat does not accept ‚v‘ format specifier).
    • Fixed bug #75642 (Wrap around behaviour for microseconds is not working).
    • Fixed bug #77007 (fractions in `diff()` are not correctly normalized).
  • Mbstring
    • Fixed bug #77025 (mb_strpos throws Unknown encoding or conversion error).
  • Tidy
    • Fixed bug #77027 (tidy::getOptDoc() not available on Windows).
  • Tokenizer
    • Fixed bug #76991 (Incorrect tokenization of multiple invalid flexible heredoc strings).
  • XML
    • Fixed bug #30875 (xml_parse_into_struct() does not resolve entities).
    • Add support for getting SKIP_TAGSTART and SKIP_WHITE options.
  • XMLRPC:
    • Fixed bug #75282 (xmlrpc_encode_request() crashes).

 

Hier geht es zum Download des PHP 7.3 RC4. Der nächste Release Candidate wird laut Roadmap am 8. November fällig.

PHP 7.3 – die neuen Features

Was die größeren Neuerungen in PHP 7.3 anbelangt, so dürfen wir für PHP 7.3 die Umsetzung von 12 RCFs erwarten:

Flexible Heredoc and Nowdoc Syntaxes: In PHP 7.3 wird die Syntax für Heredoc und Nowdoc flexibler gestaltet. So wird das Einrücken von Nowdoc/Heredoc-Endmarkierungen erlaubt sein, zudem entfällt die Notwendigkeit, einen Zeilenumbruch zu setzen.

Allow a trailing comma in function calls: Nachgestellte Kommas in Funktionsaufrufen werden eingeführt. Zum Rücksetzen von Variablen ist zum Beispiel folgende Syntax erlaubt:

unset(
    $somethingIDontNeedAnymore,
    $anotherOneToKill,
    $letsMakeThisEasy,
);

Beim Zusammensetzen von Arrays geht jetzt folgender Code:

$newArray = array_merge(
    $arrayOne,
    $arrayTwo,
    ['foo', 'bar'],
);

JSON_THROW_ON_ERROR: In PHP 7.3 wird ein neues Flag eingeführt, um die Fehlerbehandlung für JSON Extensions zu verändern. Es gibt jetzt die Option, bei Fehlern im Kontext von  json_encode und json_decode Exceptions werfen zu lassen. 

PCRE2 Migration: Der PHP Core wird auf die Nutzung des PCRE2-Standards (Perl Compatible Regular Expressions) eingestellt.

list() Reference Assignment: Eine neue Syntax für die Zuweisung von Variablen durch Referenzen in list() wird eingeführt. Statt etwa Folgendes zu schreiben:

$array = [1, 2];
$a = $array[0];
$b =& $array[1];

ist in PHP 7.3 nun die unten stehende Sequenz möglich:

$array = [1, 2];
list($a, &$b) = $array;

is_countable function: Die neue Typenfunktion is_countable() gibt true zurück, wenn der übergebene Wert ein array-Typ oder eine Instanz des Countable-Interface ist.

array_key_first(), array_key_last(): Zwei neue Funktionen werden eingeführt, um die ersten und letzten Keys in Arrays zu ermitteln.

Make compact function reports undefined passed variables: Ein Hinweis wird ausgegeben, wenn eine nicht definierte Variable an die Funktion compact() übergeben wird. Beispiel:

$foo = 'bar';
 
$baz = compact('foz'); // Notice: compact(): Undefined variable: foz

Argon2 Password Hash Enhancements: Der Argon2i Hashing-Algorithmus soll durch Argon2id ersetzt werden.

Deprecate and Remove image2wbmp(): Die Funktion image2wbmp() wird als veraltet eingestuft und soll durch das neuere imagewbmp ersetzt werden.

Deprecate and Remove Case-Insensitive Constants: Die Unterstützung Case-insensitiver Konstanten wird als veraltet eingestuft und soll in der nächsten Major-Version entfernt werden. Beispiel:

define('FOO', 42, true); // Deprecated: define(): Declaration of case-insensitive constants is deprecated
var_dump(FOO); // Ok!
var_dump(foo); // Deprecated: Case-insensitive constants are deprecated. The correct casing for this constant is "FOO"

Deprecations for PHP 7.3: Die folgenden kleineren Sprachkonstrukte werden als veraltet eingestuft:

  • Undokumentierte mbstring Funktions-Aliases
  • String-Search-Funktionen mit integer needle
  • fgetss() Funktion und string.strip_tags Filter
  • Definition freistehender assert() Funktionen
  • FILTER_FLAG_SCHEME_REQUIRED und FILTER_FLAG_HOST_REQUIRED Flags
  • Die php.ini Direktive pdo_odbc.db2_instance_name
International PHP Conference

How Much Framework?

by Arne Blankerts (thePHP.cc)

Building a Cloud-Friendly Application

by Larry Garfield (Platform.sh)

Crafting Maintainable Laravel Applications

by Jason McCreary (Pure Concepts, LLC)

JavaScript Days 2020

Architektur mit JavaScript

mit Golo Roden (the native web)

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -