PHP Digest Nr. 155 (22. April - 6. Mai 2019)


Neue Auswahl mit Links zu Nachrichten und Materialien. In der Version: PHP-Updates, Codeception 3.0 und andere Versionen, kurze Lambdas in PHP 7.4 und eine Übersicht über die neuesten RFC-Sätze von PHP Internals, einen Teil nützlicher Tools und vieles mehr.

Viel Spaß beim Lesen!



Nachrichten und Veröffentlichungen


  • PHP 7.3.5
  • PHP 7.2.18
  • PHP 7.1.29
  • Codeception 3.0 - Verbesserte interaktive Konsole, Wiederholungsschritte, Unterstützung für PHPUnit 8 und mehr.
  • spiral / roadrunner 1.4.0 - Aktualisieren des Anwendungsservers, des Balancers und des Prozessmanagers auf Go. Die Version enthält einen sicheren Stopp für Mitarbeiter, Unterstützung für Umgebungsvariablen in Konfigurationen, die Möglichkeit, Mitarbeiter in einem Pool zu steuern und vieles mehr. Es gibt eine neue Website roadrunner.dev .
  • PHP Russland 2019 - 17. Mai, Moskau, Infospace. Bis zur letzten Preiserhöhung verbleiben nur noch wenige Tage.

PHP-Interna


  • [RFC] Pfeilfunktionen 2.0 - Vorschlag hat die Abstimmung bestanden und angenommen. In PHP gibt es jetzt kurze anonyme Funktionen, die die Syntax fn() => und Variablen aus einem externen Bereich automatisch nach Wert erfassen:
     $y = 1; $fn = fn($x) => $x + $y; 

    Bisher können Funktionen nur einen Ausdruck enthalten, dessen Ergebnis zurückgegeben wird. Mehrzeilige Funktionen können später implementiert werden. Ein Hack mit dem Operator && wie in JS funktioniert nicht:
    Versteckter Text
     andOperator = ($x) => ($y = 10) && $x + $y; console.log(andOperator(5)); // 15 
     $andOperator = fn($x) => ($y = 10) && $x + $y; var_dump($andOperator(5)); // bool(true) 
    Sie können den Hack jedoch mit end() anwenden:
    Versteckter Text
     <?php function last(...$args) { return end($args); } $multipleLines = fn($x) => last( $y = $x * 10, // 10 $z = $y + 15, // 25 $x + $y + $z // 1 + 10 + 25      last() ); var_dump($multipleLines(1)); // int(36) 

    Oder verwenden Sie array_slice() , danke an Grikdotnet für den Tipp :
    Versteckter Text
     $multipleLines = fn($x) => array_slice([ $y = $x * 10, $z = $y + 15, $x + $y + $z ], -1)[0]; var_dump($multipleLines(1)); // int(36) 

  • [RFC] PHP verwerfen Kurze offene Tags - Der Vorschlag befasste sich mit der Idee, die Möglichkeit der Verwendung kurzer Tags zu entfernen <? Es wurde jedoch von einem Sturm der Empörung und Kontroverse getroffen. Daher wurde ein viel milderer Weg vorgeschlagen, bei dem in den nächsten Versionen die Gelegenheit unverändert bleibt und eine Abwertungswarnung ausgegeben wird.
  • [RFC] Spread Operator in Array Expression - Vorschlag fast einstimmig angenommen. Der Operator ... ist jetzt in Arrays verfügbar.
    Versteckter Text
     $parts = ['apple', 'pear']; $fruits = ['banana', 'orange', ...$parts, 'watermelon']; // ['banana', 'orange', 'apple', 'pear', 'watermelon']; 
    Außerdem können Sie damit schnell einen Iterator in ein Array konvertieren, anstatt iterator_to_array :
     $array = [...$iter]; 
  • RFC: Erlaube das Auslösen von Ausnahmen von __toString () - Nikita behebt weiterhin systematisch die "Traurigkeit von PHP" nacheinander. Dieses Mal geht es um die Möglichkeit, eine Ausnahme in __toString() . Eine weitere nette und keineswegs triviale Verbesserung für PHP 7.4, bei der nicht alle Arten von Problemumgehungen 1 , 2 verwendet werden müssen .
  • Audio PHP Internals News # 7 - Derick Rethans spricht mit Zeev Surasky über JIT in PHP 8 und frühere Implementierungsversuche.
  • Audio PHP Internals News # 8 - Gespräch mit George Banyard, PHP-Dokumentationsautor, über kurze Tags.

Die Werkzeuge


  • kalessil / Production-Dependencies-Guard - Das Paket verhindert das Hinzufügen von Dev-Abhängigkeiten, z. B. Test- und Debugging-Tools, zum erforderlichen Abschnitt der Datei composer.json und führt auch mehrere andere Überprüfungen durch.
  • jakoch / awesome-composer - Eine Auswahl an Ressourcen und Werkzeugen für Composer.
  • twirphp / twirp - Port des Twitch Twirp RPC-Frameworks in PHP. Beitrag zur Unterstützung.
  • EFTEC / BladeOne - Eine Framework-unabhängige Version von Blade in einer einzigen Datei und ohne Abhängigkeiten.
  • fe3dback / str - Objekt-Wrapper über String mit vielen Methoden zur Manipulation und Unterstützung von Multibyte-Strings.

Symfony



Laravel



Yii



Async php



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. 154

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


All Articles