Alustati PHP 8.1 alfa-testimist.

Esitatud on uue PHP 8.1 programmeerimiskeele haru esimene alpha-variant. VÀljalase on planeeritud 25. novembriks. Peamised uuendused, mis on juba testimiseks saadaval vÔi mille rakendamine on plaanis PHP 8.1-s:

  • Lisatud on toetust loeteludele, nĂ€iteks saame nĂŒĂŒd 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 toetust kergete tĂ”ugete jaoks, mida nimetatakse kiududeks (Fiber) ja mis vĂ”imaldavad madala taseme paralleelsuse juhtimist. Kiudude 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 objektikoodi vahemĂ€lu (opcache) rakendust, kus on nĂŒĂŒd vĂ”imalik klasside pĂ€rimise teavet vahemĂ€lustada. Optimeerimine on vĂ”imaldanud mĂ”nede rakenduste jĂ”udlust tĂ”sta 5-8%.
  • Massiivide sees oleva lahtipakkimise operaator « $var» on liikunud edasi, vĂ”imaldades olemasolevate massiivide asendamist uue massiivi mÀÀramisel ja on laiendatud stringi vĂ”tmete toega (varem toetati ainult numbrilisi identifikaatoreid). NĂ€iteks saab nĂŒĂŒd koodis kasutada: $array1 = ['a' => 1]; $array2 = ['b' => 2]; $array = ['a' => 0, 
$array1, 
$array2]; var_dump($array); // ['a' => 1, 'b' => 2]
  • Ilmunud on uus tĂŒĂŒp «never», mida saab kasutada staatiliste analĂŒsaatorite teavitamiseks, et funktsioon lĂ”petab programmi tĂ€itmise, nĂ€iteks visates erandi vĂ”i tĂ€ites funktsiooni exit. function dd(mixed $input): never { exit; }
  • Pakutud on uus funktsioon array_is_list, mis vĂ”imaldab mÀÀrata, et massiivi vĂ”tmed on jĂ€rjestatud suurenevate numbriliste vÀÀrtuste jĂ€rgi, alustades 0-st: $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
  • Pakku ette vĂ”imalus klassi konstantide ĂŒlekirjutamiseks pĂ€rimisel. Vanema klassi konstantide ĂŒlekirjutamise lubamiseks vĂ”ib kasutada mĂ€rksĂ”na „final”. class Foo { public const X = "foo"; final public const Z = "foo"; } class Bar extends Foo { public const X = "bar"; }
  • Pakkunud funktsioone fsync ja fdatasync sundimaks muudatusi kettakohandisse salvestama. $file = fopen("sample.txt", "w"); fwrite($file, "MĂ”ned sisu"); if (fsync($file)) { echo "Fail on edukalt kettale salvestatud."; } fclose($file);
  • Lisatud vĂ”imalus kasutada eelmisi eeliseid „0o” ja „0O” kaheksandeliste arvude jaoks, lisaks varem kasutatud „0” eelis. 016 === 0o16; // true 016 === 0O16; // true
  • Pakkunud vĂ”imalust piirata $GLOBALS kasutamist, mis toob kaasa tagasipööramatuse, kuid kiirendab oluliselt massiividega töötamise operatsioone. NĂ€iteks kaalutakse kirjutamise keeldumist $GLOBALS-is ja $GLOBALS-i edastamist viidena. 2000 paketi analĂŒĂŒs nĂ€itas, et vaid 23 neist puutuks kokku nende muudatustega. NĂ€iteks, kui ettepanek 8.1-s heaks kiidetakse, lĂ”petatakse selliste vĂ€ljendite toetamine nagu: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset($GLOBALS); by_ref($GLOBALS);
  • JĂ€tkatud töö funktsioonide ĂŒleviimiseks ressursikasutamiselt objektimanipulatsioonile. Funktsioonid finfo_* ja imap_* on ĂŒle viidud objektidele.
  • Deklaritud aegunud nullide vÀÀrtuse edastamine sisemistele funktsioonidele, mis on mĂ€rgitud kui non-nullable. PHP 8.1-s toob konstruktsioonide, nagu str_contains("string", null), kasutamine kaasa hoiatuse, ja PHP 9-s vea.
  • Lisatud tugi hashimisalgrĂŒtmidele MurmurHash3 ja xxHash.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster