Alfa-testimine PHP 8.1 on alanud

Esitatud on esimesed alpha vÀljaanded uue PHP 8.1 programmeerimiskeele haru. VÀljalaskmine on planeeritud 25. novembriks. Peamised uuendused, mis on juba testimiseks saadaval vÔi plaanitud rakendamiseks PHP 8.1-s:

  • Lisatud on toimetuste toetamine, nĂ€iteks saab kasutada jĂ€rgmisi konstruktsioone: enum Status { case Pending; case Active; case Archived; } class Post { public function __construct( private Status $status = Status::Pending; ) {} public function setStatus(Status $status): void { // 
 } } $post->setStatus(Status::Active);
  • Lisatud on kerged niidid, mida nimetatakse faiberiteks (Fiber), mis vĂ”imaldavad madala taseme eraldamist juhtida. Faiberite toetust plaanitakse lisada Amphp ja ReactPHP raamistikesse. $fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend(‘after suspending’); // 
 }); $valueAfterSuspending = $fiber->start(); $fiber->resume(‘after resuming’);
  • Parandatud on objektikoodi vahemĂ€lu (opcache) rakendust, kus on nĂŒĂŒd vĂ”imalik vahemĂ€llu salvestada klasside pĂ€rimisinfot. Optimeerimine on vĂ”imaldanud suurendada mĂ”nede rakenduste jĂ”udlust 5-8%.
  • Massiivide sisemiste lahtipakkimise operaator « $var» on laiendatud stringi vĂ”tmete toega (varem toetati vaid numbrilisi identifikaatoreid). NĂ€iteks on nĂŒĂŒd vĂ”imalik koodis kasutada: $array1 = ["a" => 1]; $array2 = ["b" => 2]; $array = ["a" => 0, 
$array1, 
$array2]; var_dump($array); // ["a" => 1, "b" => 2]
  • Uus tĂŒĂŒp «never» on nĂŒĂŒd saadaval, mida saab kasutada staatiliste analĂŒsaatorite teavitamiseks, et funktsioon lĂ”petab programmi tĂ€itmise, nĂ€iteks exception'i viskamise vĂ”i exit-funktsiooni kutsumisega. function dd(mixed $input): never { exit; }
  • Uus funktsioon array_is_list on pakutud, mis vĂ”imaldab mÀÀrata, kas massiivi vĂ”tmed on jĂ€rjestatud kasvavas jĂ€rjekorras alates 0: $list = ["a", "b", "c"]; array_is_list($list); // true $notAList = [1 => "a", 2 => "b", 3 => "c"]; array_is_list($notAList); // false $alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"]; array_is_list($alsoNotAList); // false
  • Pakutakse vĂ”imalust konstantide ĂŒlekirjutamiseks klassis pĂ€rimisel. Vanema klassi konstantide ĂŒlekirjutamiseks saab kasutada vĂ”tmesĂ”na „final”. class Foo { public const X = "foo"; final public const Z = "foo"; } class Bar extends Foo { public const X = "bar"; }
  • KĂ€sklused fsync ja fdatasync on ette nĂ€htud muudatuste sundimiseks ketta vahemĂ€lust salvestamiseks. $file = fopen("sample.txt", "w"); fwrite($file, "Some content"); if (fsync($file)) { echo "Fail on edukalt kettale salvestatud."; } fclose($file);
  • Lisatud on vĂ”imalus kasutada prefikse „0o” ja „0O” kaheksandate arvude jaoks, lisaks varem kasutatud prefiksile „0”. 016 === 0o16; // true 016 === 0O16; // true
  • On soovitatud piirata $GLOBALS kasutamist, mis vĂ”ib viia tagurpidi ĂŒhilduvuse rikkumiseni, kuid vĂ”imaldab oluliselt kiirendada massiividega töötamist. NĂ€iteks kaalutakse vĂ”imalust keelata kirjutamine $GLOBALS-sse ja edastada $GLOBALS viitena. 2000 paketi analĂŒĂŒs nĂ€itas, et ainult 23 neist mĂ”jutaks see muudatus. Kui ettepanek heaks kiidetakse, lĂ”petatakse 8.1 versioonis selliste konstruktsioonide toetamine nagu: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset($GLOBALS); by_ref($GLOBALS);
  • JĂ€tkatakse funktsioonide tĂ”lkimist ressursipĂ”hiselt objektipĂ”hiseks. Funktsioonid finfo_* ja imap_* on muudetud objekti kasutamiseks.
  • On kuulutatud vananenuks null vÀÀrtuste edastamine sisemiste funktsioonide argumentidena, mis on tĂ€histatud kui non-nullable. PHP 8.1 kasutamine str_contains('string', null) viib hoiatusele, ja PHP 9-s viga.
  • Toetatavaks on lisatud MurmurHash3 ja xxHash hajutusalgoritmid.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster