Alpha Testen vu PHP 8.2 huet ugefaang

Déi éischt Alpha Verëffentlechung vun der neier Branche vun der PHP 8.2 Programméiersprooch gouf presentéiert. D'Verëffentlechung ass fir den 24. November geplangt. D'Haaptinnovatiounen déi scho verfügbar sinn fir ze testen oder geplangt fir Implementatioun am PHP 8.2:

  • Separat Zorte "falsch" an "null" goufen dobäi, déi benotzt kënne ginn, zum Beispill, engem Zeeche vun Réalisatioun mat engem Feeler oder engem eidel Wäert vun enger Funktioun zréck. Virdrun konnten "falsch" an "null" nëmmen a Verbindung mat aneren Typen benotzt ginn (zum Beispill "String|falsch"), awer elo kënne se separat benotzt ginn: function alwaysFalse(): false { return false; }
  • D'Fäegkeet bäigefüügt fir eng Klass als nëmmen liesen ze markéieren. Eegeschaften an esou Klassen kënnen nëmmen eemol gesat ginn, duerno sinn se net fir Ännerung verfügbar. Virdrun konnten eenzel Klasseneigenschaften als Lieszeechen markéiert ginn, awer elo kënnt Dir dëse Modus fir all Klasseigenschaften gläichzäiteg ausschalten. D'Spezifikatioun vun der "readonly" Fändel um Klass Niveau blockéiert och déi dynamesch Zousatz vun Eegeschafte fir d'Klass. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'falsch'; // Feeler: Kann net dynamesch Propriétéit schafen Post:: $ onbekannt
  • D'Kapazitéit fir dynamesch Eegeschaften an enger Klass ze kreéieren gouf ofgeschaaft (wéi "post-> onbekannt" am Beispill hei uewen). An PHP 9.0, Zougang zu Eegeschaften, déi net ursprénglech an der Klass definéiert sinn, féiert zu engem Feeler (ErrorException). Klassen déi __get an __set Methoden fir d'Schafe vun Eegeschafte ubidden, oder dynamesch Eegeschaften an stdClass wäerte weiderhin onverännert schaffen, nëmmen implizit Aarbecht mat net existent Eegeschafte gëtt gestoppt fir den Entwéckler vu verstoppte Feeler ze schützen. Fir den alen Code ze halen, gëtt den Attribut "#[AllowDynamicProperties]" proposéiert, wat d'Benotzung vun dynamesche Properties erlaabt.
  • Gitt d'Fäegkeet fir sensibel Astellungen am Stack Trace Output zu der Zäit vun engem Feeler ze filteren. D'Ausschneiden vun verschidden Informatioune kann erfuerderlech sinn wann Informatioun iwwer Feeler, déi optrieden, automatesch un Drëtt-Partei-Servicer geschéckt gëtt, déi Problemer verfollegen an d'Entwéckler doriwwer informéieren. Zum Beispill kënnt Dir Parameteren aus der Spuer ausschléissen, déi Benotzernimm, Passwierder an Ëmfeldvariablen enthalen. Funktiounstest ($foo, #[\SensitiveParameter] $Passwuert, $baz) {werfen nei Ausnam ('Feeler'); } test('foo', 'Passwuert', 'baz'); Fatal Feeler: Uncaught Ausnam: Feeler am test.php:8 Stack Trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} an test.php op Linn 8 geworf
  • D'Kapazitéit fir variabel Wäerter a Strings ze ersetzen mat "${var}" an ${(var)}" Ausdréck gouf ofgeschaaft. Ënnerstëtzung fir allgemeng benotzt "{$var}" an "$var" Ersatzstécker gouf behalen. Zum Beispill: "Hallo {$world}"; OK "Hallo $world"; OK "Moien ${Welt}"; Deprecéiert: ${} a Strings ze benotzen ass ofgeschaaft
  • Deprecéiert deelweis ënnerstëtzt Callables déi iwwer "call_user_func($callable)" opgeruff kënne ginn, awer ënnerstëtzen net Uruff an der Form "$callable()": "self::method" "parent::method" "static::method" ["selwer", "Methode"] ["parent", "Methode"] [""]", "Fomethod"] ["]", [:B] :: Method"]
  • Ëmgesat locale-onofhängeg Fall Konversioun. Funktiounen wéi strtolower () a strtoupper () konvertéieren elo ëmmer de Fall vun Zeechen am ASCII-Beräich, wéi wann Dir d'Lokale op "C" setzt.

Source: opennet.ru

Setzt e Commentaire