Alfa-testado de PHP 8.2 komenciĝis

La unua alfa-eldono de la nova branĉo de la programlingvo PHP 8.2 estis prezentita. La liberigo estas planita por la 24-a de novembro. La ĉefaj novigoj jam disponeblaj por testado aŭ planitaj por efektivigo en PHP 8.2:

  • Oni aldonis apartajn tipojn "falsa" kaj "nula", kiuj povas esti uzataj, ekzemple, por redoni signon de kompletigo kun eraro aŭ malplena valoro per funkcio. Antaŭe, "false" kaj "null" nur povus esti uzataj kune kun aliaj tipoj (ekzemple "ĉeno|falsa"), sed nun ili povas esti uzataj aparte: function ĉiamFalse(): false { return false; }
  • Aldonita la kapablo marki klason kiel nurlegebla. Propraĵoj en tiaj klasoj povas esti agordita nur unufoje, post kio ili ne estos disponeblaj por ŝanĝo. Antaŭe, individuaj klasaj propraĵoj povus esti markitaj nurlegeblaj, sed nun vi povas ŝalti ĉi tiun reĝimon por ĉiuj klasaj propraĵoj samtempe. Specifante la "nurlegeblan" flagon ĉe la klasnivelo ankaŭ blokas la dinamikan aldonon de propraĵoj al la klaso. nurlegebla klaso Afiŝu { publika funkcio __konstrui( publika ĉeno $titolo, publika Aŭtoro $aŭtoro, ) {} } $afiŝo = nova Afiŝo (/* … */); $post->nekonata = 'malĝusta'; // Eraro: Ne povas krei dinamikan posedaĵon Post::$nekonata
  • La kapablo dinamike krei ecojn en klaso estis malrekomendita (kiel "post->nekonata" en la supra ekzemplo). En PHP 9.0, aliri proprietojn ne origine difinitajn en la klaso rezultigos eraron (ErrorException). Klasoj, kiuj provizas __get kaj __set-metodojn por krei proprietojn, aŭ dinamikajn ecojn en stdClass, daŭre funkcios senŝanĝe, nur implica laboro kun neekzistantaj proprietoj estos ĉesigita por protekti la programiston kontraŭ kaŝitaj eraroj. Por konservi la malnovan kodon funkcianta, la atributo "#[AllowDynamicProperties]" estas proponita, permesante la uzon de dinamikaj propraĵoj.
  • Provizis la kapablon filtri sentemajn agordojn en la stakspura eligo en la momento de eraro. Eltranĉi certajn informojn povas esti postulata kiam informoj pri eraroj kiuj okazas estas aŭtomate senditaj al triaj servoj, kiuj spuras problemojn kaj informas programistojn pri ili. Ekzemple, vi povas ekskludi parametrojn de la spuro, kiuj inkluzivas uzantnomojn, pasvortojn kaj mediajn variablojn. funkciotesto( $foo, #[\SensitiveParameter] $pasvorto, $baz ) { throw new Exception('Eraro'); } test('foo', 'pasvorto', 'baz'); Fatala eraro: Nekaptita Escepto: Eraro en test.php:8 Stack-spuro: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {ĉefa} ĵetita en test.php sur linio 8
  • La kapablo anstataŭigi variajn valorojn en ĉenojn uzante la esprimojn "${var}" kaj ${(var)}" estas malrekomendita. Subteno por ofte uzataj "{$var}" kaj "$var" anstataŭaĵoj estis konservita. Ekzemple: "Saluton {$mondo}"; OK "Saluton $mondo"; Bone "Saluton ${mondo}"; Malrekomendita: Uzado de ${} en ĉenoj estas malrekomendita
  • Malrekomenditaj parte subtenataj vokabloj kiuj povas esti nomitaj per "call_user_func($callable)" sed ne subtenas vokadon en la formo "$callable()": "self::method" "parent::method" "static::method" ["self", "method"] ["gepatro", "method"] ["static]", "["Fomethod", "Barreto:::metodo" :: metodo"]
  • Efektivigita lok-sendependa kazo konvertiĝo. Funkcioj kiel strtolower() kaj strtoupper() nun ĉiam konvertas la majusklecon de signoj en la ASCII-gamo, kiel kiam oni agordas la lokadon al "C".

fonto: opennet.ru

Aldoni komenton