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 2018

Getting Started with PHPUnit

by Sebastian Bergmann (thePHP.cc)

Squash bugs with static analysis

by Dave Liddament (Lamp Bristol)

API Summit 2018

From Bad to Good – OpenID Connect/OAuth

mit Daniel Wagner (VERBUND) und Anton Kalcik (business.software.engineering)

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 -