PHP Digest Nr. 149 (28. Januar - 11. Februar 2019)


Neue Auswahl mit Links zu Nachrichten und Materialien. In der Version: PHPUnit 8 und anderen Versionen, PSR-14 und PSR-12 in der Überprüfungsphase, JIT für PHP, wurde mit der Arbeit an PHP 8 begonnen, einer Reihe neuer RFC von PHP Internals, einem Teil nützlicher Tools und vielem mehr.

Viel Spaß beim Lesen!



Nachrichten und Veröffentlichungen



PHP-Interna


  • Ein PHP-7.4-Zweig wurde erstellt , und das PHP-Master-Repository zielt jetzt auf PHP 8.0 ab. Dies bedeutet, dass die Arbeit an PHP 8.0 bereits begonnen hat und PHP 7.4 parallel entwickelt wird. In PHP 8 wurden bereits einige veraltete Funktionen entfernt .
  • [RFC] JIT - Eine alte Idee mit JIT in PHP wurde dank der Bemühungen von Dmitry Stogov endlich umgesetzt. JIT ist als unabhängiger Teil von OPcache implementiert und kann auch zur Laufzeit ein- und ausgeschaltet werden. PHP 8 wird als Zielversion betrachtet, es ist jedoch möglich, es in PHP 7.4 als experimentelle Funktion aufzunehmen, die standardmäßig deaktiviert ist. Laut den Benchmarks von Nikita Popov erhöht JIT den PHP-Parser um 30% und den Amphp / http-Server um etwa 5%. Derzeit gibt es keine Windows-Unterstützung, was in Interna umstritten ist.
    In der Zwischenzeit können Sie PHP + JIT bereits mit Docker-Images ausprobieren (danke @dmitrybalabka ). Auch ein großartiger Beitrag darüber, was JIT für PHP-Benutzer bedeutet .
  • [RFC] Konsistente Typfehler für interne Funktionen - Ein weiterer RFC von Nikita Popov. Es wird empfohlen, dass in PHP 8 alle integrierten Funktionen einen TypeError auslösen, wenn Parameter des falschen Typs übergeben werden, anstatt vorning und null .
    Versteckter Text
    Stattdessen:
     var_dump(strlen(new stdClass)); // Warning: strlen() expects parameter 1 to be string, object given // NULL 

    Wird sein:

     declare(strict_types=1); var_dump(strlen(new stdClass)); // TypeError: strlen() expects parameter 1 to be string, object given 

  • [RFC] RFC Workflow & Voting (Update 2019) - Der Versuch, die RFC-Abstimmung etwas zu straffen und den Prozess zu bürokratisieren, stieß bei Internals auf heftige Kritik. So sehr, dass alternative Vorschläge erschienen sind. Zeev Surasky versprach, seine Version zu überarbeiten und Kritik zu berücksichtigen.
  • [RFC] Schwache Referenzen - Es wird vorgeschlagen, die WeakReference Klasse hinzuzufügen, um schwache Links zu implementieren. WeakReference der Entwickler den Link zum Objekt speichern, ohne zu verhindern, dass er vom Garbage Collector entfernt wird. Dies kann besonders für alle Arten von Caches nützlich sein.
  • [RFC] Varianz des ungültigen Rückgabetyps zulassen - Ein Vorschlag zur Implementierung der Möglichkeit, den void Rückgabetyp in Erbenmethoden zu überschreiben. Erscheinte auf der Spur der Änderung der Signatur der setUp() -Methode und mehrerer anderer in PHPUnit 8.
    Versteckter Text
     class Foo { function method1 (): void {} function method2 () {} } class Bar extends Foo { function method1 (): array { return []; } function method2 (): array { return []; } } class Baz extends Foo { function method1 () { return 42; } function method2 () { return 42; } } 
  • [RFC] Gemischte Schreibweise - Und hier wird vorgeschlagen, eine mixed Schreibweise hinzuzufügen. Dies zeigt an, dass die Funktion Werte verschiedener Typen akzeptieren (oder zurückgeben) kann.
  • [RFC] Annotations 2.0 - Entwurf von Vorschlägen für vollständige Annotationen. Es wurden bereits Versuche unternommen, einfache Anmerkungen und Attribute zu implementieren. In der Zwischenzeit können Sie das hervorragende Anmerkungs-Plugin in PhpStorm verwenden .

Die Werkzeuge



Symfony



Laravel



Yii



Async php



CMS



Lernmaterialien



Vielen Dank für Ihre Aufmerksamkeit!

Wenn Sie einen Fehler oder eine Ungenauigkeit bemerken, informieren Sie mich bitte per PM .
Fragen und Vorschläge schreiben Sie an Mail oder Twitter .

Weitere Neuigkeiten und Kommentare zum PHP Digest Telegram Channel.

Link senden
Suchlinks für alle Digests
Vorherige Version: PHP Digest Nr. 148

Source: https://habr.com/ru/post/de439780/


All Articles