Alfaprófun á PHP 8.2 er hafin

Fyrsta alfaútgáfan af nýju útibúi PHP 8.2 forritunarmálsins hefur verið kynnt. Stefnt er að útgáfu 24. nóvember. Helstu nýjungarnar sem þegar eru tiltækar til prófunar eða fyrirhugaðar í innleiðingu í PHP 8.2:

  • Bætt við aðskildum gerðum „false“ og „null“, sem hægt er að nota, til dæmis, fyrir aðgerð til að skila villulokunarfána eða tómu gildi. Áður fyrr var aðeins hægt að nota „false“ og „null“ í tengslum við aðrar tegundir (til dæmis „streng|false“), en nú er hægt að nota þau sérstaklega: function alwaysFalse(): false { return false; }
  • Bætti við möguleikanum á að merkja bekk sem skrifvarinn. Eiginleikar í slíkum flokkum er aðeins hægt að stilla einu sinni, eftir það er ekki hægt að breyta þeim. Áður var hægt að merkja einstaka bekkjareiginleika sem skrifvarið en nú er hægt að virkja þessa stillingu fyrir alla bekkjareignir í einu. Með því að tilgreina „skrifvarinn“ fánann á bekkjarstigi kemur einnig í veg fyrir að eiginleikar verði bættir á virkan hátt við bekkinn. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'rangt'; // Villa: Get ekki búið til kraftmikla eign Post::$unknown
  • Hæfni til að búa til eiginleika í flokki (eins og "post->unknown" í dæminu hér að ofan) hefur verið úrelt. Í PHP 9.0 mun aðgangur að eiginleikum sem ekki eru upphaflega skilgreindir í bekknum leiða til villu (ErrorException). Klassar sem veita __get og __set aðferðir til að búa til eiginleika, eða kraftmikla eiginleika í stdClass, munu halda áfram að virka óbreytt, aðeins óbein vinna með eiginleikum sem ekki eru til verður studd til að vernda þróunaraðilann gegn földum villum. Til að varðveita vinnu gamla kóðans er „#[AllowDynamicProperties]“ eigindin lögð til, sem gerir kleift að nota kraftmikla eiginleika.
  • Veitir getu til að sía viðkvæmar færibreytur í stafla rekja úttakinu meðan á villu stendur. Það getur verið nauðsynlegt að skera út ákveðnar upplýsingar þegar upplýsingar um villur sem eiga sér stað eru sjálfkrafa sendar til þjónustu þriðja aðila sem rekja vandamál og upplýsa þróunaraðila um þau. Til dæmis er hægt að útiloka færibreytur sem innihalda notendanöfn, lykilorð og umhverfisbreytur frá rakningu. function test( $foo, #[\SensitiveParameter] $password, $baz ) { throw new Exception('Villa'); } test('foo', 'lykilorð', 'baz'); Banvæn villa: Uncaught Undantekning: Villa í test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} hent í test.php á línu 8
  • Hæfni til að skipta út breytugildum í strengi með því að nota tjáningarnar „${var}“ og ${(var)} hefur verið úrelt. Stuðningur við almennt notaðar „{$var}“ og „$var“ skipti hefur verið haldið. Til dæmis: "Halló {$world}"; OK "Halló $heimur"; OK "Halló ${heimur}"; Úrelt: Notkun ${} í strengjum er úrelt
  • Úreltir að hluta til studdir hringingartæki sem hægt er að hringja í gegnum "call_user_func($callable)" en styðja ekki kall í formi "$callable()": "self::method" "parent::method" "static" ::aðferð " ["sjálf", "aðferð"] ["foreldri", "aðferð"] ["static", "aðferð"] ["Foo", "Bar::aðferð"] [nýtt Foo, "Bar: :aðferð" ]
  • Innleidd staðbundin óháð tilviksbreyting. Aðgerðir eins og strtolower() og strtoupper() umbreyta nú alltaf hástöfum stafa á ASCII sviðinu eins og þær væru stilltar á "C" staðbundna.

Heimild: opennet.ru

Bæta við athugasemd