Megkezdődött a PHP 8.1 alfa tesztelése

Bemutatásra került a PHP 8.1 programozási nyelv új ágának első alfa kiadása. A kiadás dátuma november 25-ére van kitűzve. Az új funkciók, amelyek már elérhetők tesztelésre vagy tervezettek a PHP 8.1-ben:

  • Megérkezett a felsorolások támogatása, például már használhatók a következő konstrukciók: 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);
  • Bevezetésre került a könnyű szálak támogatása, melyeket fábernek (Fiber) neveznek, és amelyek lehetővé teszik az alacsony szintű párhuzamosítás kezelését. A fáber támogatását az Amphp és ReactPHP keretrendszerekhez kívánják hozzáadni. $fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend('after suspending'); // … }); $valueAfterSuspending = $fiber->start(); $fiber->resume('after resuming');
  • Javult az objektumkód-cache (opcache) megvalósítása, amely lehetővé teszi a klasszikus öröklődési információk cache-elését. Az optimalizálás eredményeként egyes alkalmazások teljesítménye 5-8%-kal nőtt.
  • A tömbökön belüli kibővítő operátor „…$var”, amely lehetővé teszi meglévő tömbök behelyettesítését egy új tömb létrehozásakor, kiterjesztésre került a szöveges kulcsok támogatására (korábban csak numerikus azonosítók voltak támogatva). Például most a következőképpen használható a kódban: $array1 = ['a' => 1]; $array2 = ['b' => 2]; $array = ['a' => 0, …$array1, …$array2]; var_dump($array); // ['a' => 1, 'b' => 2]
  • Megjelent egy új típus, a „never”, amelyet használhatunk arra, hogy értesítsük a statikus elemzőket arról, hogy a funkció megszakítja a program végrehajtását, például kivétel kiváltásával vagy a exit funkció végrehajtásával. function dd(mixed $input): never { exit; }
  • Javasolták az array_is_list új funkciót, amely lehetővé teszi, hogy megállapítsuk, hogy a tömb kulcsai növekvő számtani értékek szerint vannak-e rendezve, 0-tól kezdődően: $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
  • Felajánlották a konstansok újradefiniálásának lehetőségét az osztályok öröklődésekor. A szülőosztály konstansainak újradefiniálásának megtiltásához használható a "final" kulcsszó. class Foo { public const X = "foo"; final public const Z = "foo"; } class Bar extends Foo { public const X = "bar"; }
  • Bevezették az fsync és fdatasync funkciókat a lemezpufferből történő módosítások kényszerített mentésére. $file = fopen("sample.txt", "w"); fwrite($file, "Néhány tartalom"); if (fsync($file)) { echo "A fájl sikeresen mentésre került a lemezre."; } fclose($file);
  • Lehetőséget kaptak az "0o" és "0O" előtagok használatára a nyolcas számrendszerbeli számoknál, az eddig használt "0" előtag mellett. 016 === 0o16; // true 016 === 0O16; // true
  • Javasolták a $GLOBALS használatának szelektív korlátozását, ami visszamenőleges kompatibilitási problémákat okozhat, de jelentősen felgyorsíthatja a tömbök műveleteit. Például javasolják a $GLOBALS írásának tilalmát és a $GLOBALS pointerben való átadásának megtiltását. 2000 csomag elemzése során kiderült, hogy csak 23 érintett változtatás. Például, ha a javaslatait elfogadják, 8.1-től a következő kifejezések támogatása megszűnik: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset($GLOBALS); by_ref($GLOBALS);
  • Folyamatosan dolgoznak az erőforrás-alapú funkciók objektumkezelésre való átállításán. Az finfo_* és imap_* funkciók átkerültek az objektumokhoz.
  • Elavultnak nyilvánították a null értékek átadását a belső, nem null értékűnek jelölt funkcióknak. A PHP 8.1-ben az ilyen konstrukciók, mint a str_contains("string", null) figyelmeztetést eredményeznek, míg a PHP 9-ben hibát.
  • Támogatás került bevezetésre a MurmurHash3 és xxHash hash algoritmusokhoz.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster