PHP Digest Nr. 171 (1. - 13. Januar 2020)


Frische Auswahl mit Links zu Nachrichten und Materialien. In der Veröffentlichung: 4 neue RFCs von PHP Internals und interessante Pool-Anfragen in PHP 8, einige nützliche Tools, Podcasts, Streams und vieles mehr.

Viel Spaß beim Lesen!



PHP-Interna


  • [RFC] Variablensyntax-Tweaks - Eine Reihe von Inkonsistenzen in der Syntax von RFC- Variablen mit einheitlicher Variablensyntax wurden in PHP 7 behoben. Einige dereferenzierende Auslassungen sollen in PHP 8 behoben werden.
  • [RFC] Statischer Rückgabetyp - Das static im Kontext einer Typdeklaration bedeutet eine verspätete statische Bindung . Es wird vorgeschlagen, die Verwendung dieser Methode als Rückgabetyp zu ermöglichen. Geeignet für Fluidschnittstellen oder statische Konstruktoren.
    Versteckter Text
     class Test { public function doWhatever(): static { // Do whatever. return $this; } } 
    Für Klasseneigenschaften und Methodenparameter ist dies nicht sinnvoll und funktioniert nicht.
  • [RFC] Allow :: class für Objekte - In PHP 8 wird vorgeschlagen, es zu ermöglichen, den vollständigen Klassennamen aus dem $object::class , ähnlich wie es jetzt unter Foo\Bar::class funktioniert.
  • [RFC] Anweisung "use global functions / consts" - Wenn eine Funktion oder Konstante ohne Präfix verwendet wird, versucht PHP, diese zuerst im aktuellen Namespace und dann im globalen zu finden. Der Autor schlägt vor, Direktiven hinzuzufügen, use global functions; und use global consts; Dies zwingt den Interpreter, standardmäßig nach Funktionen und Konstanten ohne Präfixe im globalen Raum zu suchen.
  • [RFC] Schwache Karten - Angebot angenommen und WeakMaps werden in PHP 8 verfügbar sein.

    Mehrere Änderungen sind als Poolanforderungen verfügbar:
  • [PR] Erforderlichen Parameter nach optional veralten - Diese Warnung über die Verwendung des erforderlichen Parameters nach der Implementierung der optionalen Funktionssignatur:
     function test(FooBar $param = null, $param2) 

    Dies mag vorher Sinn machen, aber mit nullbaren Typen können Sie function test(?FooBar $param, $param2) schreiben function test(?FooBar $param, $param2) .
  • [PR] Überprüfen von abstrakten Methodensignaturen, die aus Merkmalen stammen - Signaturen von abstrakten Methoden aus Merkmalen werden nicht auf Implementierungskonformität überprüft. Das heißt, dieser Code funktioniert jetzt ohne Fehler:
    Versteckter Text
     trait T { abstract function neededByTheTrait(int $a, string $b); } class C { use T; function neededByTheTrait(array $a, object $b) {} } 
    Poolanforderung korrigiert dieses Verhalten.
  • [PR] Korrekte Signaturen für PHP-Magic-Methoden sicherstellen - In dieser PR wird die Überprüfung der Signaturen von Magic-Methoden implementiert. Im Moment ist es nur für __toString() und __clone() , aber dies funktioniert zum Beispiel ohne Fehler:
    Versteckter Text
     class Foo { function __get(int $name) {} } (new Foo)->{42}; 

Die Werkzeuge



Symfony



Laravel



Zend / Laminas



CMS



Lernmaterialien




Audio / Video



Vielen Dank für Ihre Aufmerksamkeit!

Wenn Sie einen Fehler oder eine Ungenauigkeit bemerken - informieren Sie mich bitte in PM .
Fragen und Anregungen 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. 170

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


All Articles