Vorgeschlagene RFCs finden breite Mehrheit

PHP: Lösung für kurze Pfeilfunktionen genehmigt
Keine Kommentare

Das PHP-Team hat kürzlich die von Nikita Popov, Levi Morrison und Bob Weinand in einem RFC vorgeschlagene Lösung für kurze Pfeilfunktionen genehmigt.

Anonyme Funktionen in PHP können recht ausführlich sein, auch wenn sie nur eine einfache Operation ausführen. Dies ist zum Teil auf eine große Menge an syntactic boilerplate und zum Teil auf die Notwendigkeit zurückzuführen, verwendete Variablen manuell importieren zu müssen. Dies macht Code mitunter schwer lesbar und unverständlich.

PHP RFC: Pfeilfunktionen 2.0

Ein RFC schlug eine kürzere Syntax für dieses Muster vor. Mit 51 Ja-Stimmen (8 waren dagegen) wurde nun in der Abstimmung das „Hinzufügen von Pfeilfunktionen wie in PHP 7.4 beschrieben“ genehmigt.

Ein Beispiel aus der Vorgängerversion, der den Deklarationsaufwand ganz gut beschreibt.

 
function array_values_from_keys ( $ arr ,  $ keys )  { 
    return  array_map ( Funktion  ( $ x )  use  ( $ arr )  {  return  $ arr [ $ x ] ;  } ,  $ keys ) ; 
}

Die Schließung führt eine einzelne Operation aus und besteht aus 8 Zeichen, erfordert jedoch 30 andere Zeichen (außer Leerzeichen). Dies bedeutet, dass ungefähr 79 % des Codes der Schließung Overhead sind. Diese zusätzlichen Zeichen werden auch als „Boilerplate“ bezeichnet. Der RFC schlug Pfeilfunktionen vor, um die Anzahl der Boilerplates durch eine kürzere Syntax zu reduzieren und verwendete Variablen implizit aus dem äußeren Bereich zu importieren. Die Verwendung von Pfeilfunktionen reduziert sich demnach auf Folgendes: $arr[$x].

 
function array_values_from_keys ( $ arr ,  $ keys )  { 
    return  array_map ( fn ( $ x )  =>  $ arr [ $ x ] ,  $ keys ) ; 
}

Die Frage der kurzen Schließungen wurde in der Vergangenheit ja bereits ausführlich diskutiert. Bei einem früheren Short-Closure-RFC wurde das Voting abgelehnt. Der jetzt vorgelegte Vorschlag, der eine Mehrheit fand, versuchte einige der aufgeworfenen Bedenken mit einer anderen Wahl der Syntax zu lösen, die nicht den Einschränkungen des vorherigen Vorschlags unterliegen.

International PHP Conference

Frameworkless – the new black?

by Carsten Windler (KW-Commerce GmbH)

Getting started with PHP-FFI

by Thomas Bley (Bringmeister GmbH)

JSON-Schema von 0 auf 100

by Ingo Walther (Electronic Minds GmbH)

IT Security Camp 2021

Interview mit Christian Schneider zum Thema „DevSecOps“

DevSecOps ist, bezogen auf Security-Checks, die logische Fortführung der Automatisierung im DevOps-Sinne

IT-Security Experte, Christian Schneider

Christian ist als freiberuflicher Whitehat Hacker, Trainer und Security-Coach tätig. Als Softwareentwickler mit mittlerweile 20 Jahren Erfahrung, fand er 2005 seinen Themenschwerpunkt im Bereich IT-Security.

Im RFC wurde eine ausführliche Diskussion verschiedener Syntaxalternativen sowie der Bindungssemantik geführt. Die Autoren des RFC merken an, dass es kurze Schließungen leider ein Thema ist, bei dem aufgrund signifikanter Einschränkungen in der Syntax und Implementierung wahrscheinlich keine „perfekte“ Lösung zu finden ist. Der jetzt abgestimmte Vorschlag trifft die Wahl, die die Initiatoren des RFC für „am wenigsten schlecht“ halten. Die ausführliche Version des jetzt mehrheitlich abgestimmten Vorschlags kann auf der PHP Wikiseite nachgelesen werden.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -