Ka filluar testimi alfa i PHP 8.1

U prezantua versioni i parë alpha i degës së re të gjuhës së programimit PHP 8.1. Lëshimi është parashikuar për më 25 nëntor. Zhvillimet kryesore, të cilat janë tashmë të disponueshme për testim ose janë planifikuar për t'u implementuar në PHP 8.1:

  • Shtuar mbĂ«shtetje pĂ«r enumeracionet, pĂ«r shembull, tani Ă«shtĂ« e mundur tĂ« pĂ«rdoren konstruksione tĂ« tilla: 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);
  • ËshtĂ« shtuar mbĂ«shtetje pĂ«r rrjedha tĂ« lehta, tĂ« quajtura fiber, qĂ« lejojnĂ« menaxhimin e paralelizmit nĂ« nivelin e ulĂ«t. MbĂ«shtetje pĂ«r fibera planifikohet tĂ« shtohet nĂ« frameworket Amphp dhe ReactPHP. $fiber = new Fiber(function (): void { $valueAfterResuming = Fiber::suspend(‘after suspending’); // 
 }); $valueAfterSuspending = $fiber->start(); $fiber->resume(‘after resuming’);
  • ËshtĂ« pĂ«rmirĂ«suar implementimi i caches pĂ«r kodin e objekteve (opcache), ku Ă«shtĂ« shtuar mundĂ«sia e caching tĂ« informacionit mbi trashĂ«giminĂ« e klasave. Optimizimi ka lejuar rritjen e performancĂ«s sĂ« disa aplikacioneve me 5-8%.
  • Operatori i spastrimit brenda ARRAVE « $var», i cili lejon zĂ«vendĂ«simin e Arrave ekzistuese gjatĂ« pĂ«rcaktimit tĂ« njĂ« array tĂ« ri, Ă«shtĂ« zgjeruar me mbĂ«shtetje pĂ«r çelĂ«sat string (mĂ« parĂ« mbĂ«shteteshin vetĂ«m identifikuesit numerikĂ«). PĂ«r shembull, tani mund tĂ« pĂ«rdoret nĂ« kod: $array1 = ["a" => 1]; $array2 = ["b" => 2]; $array = ["a" => 0, 
$array1, 
$array2]; var_dump($array); // ["a" => 1, "b" => 2]
  • NjĂ« lloj i ri «never» Ă«shtĂ« shtuar, i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« informuar analizatorĂ«t static nĂ« lidhje me faktin se funksioni ndalon ekzekutimin e programit, pĂ«r shembull, duke thirrur njĂ« pĂ«rjashtim ose duke ekzekutuar funksionin exit. function dd(mixed $input): never { exit; }
  • ËshtĂ« propozuar njĂ« funksion i ri array_is_list, qĂ« pĂ«rcakton nĂ«se çelĂ«sat nĂ« njĂ« array janĂ« tĂ« renditur nĂ« rritje numerike, duke filluar nga 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
  • ËshtĂ« propozuar mundĂ«sia e kalimit tĂ« konstantave nĂ« klasĂ« gjatĂ« procesit tĂ« trashĂ«gimisĂ«. PĂ«r tĂ« ndaluar kalimin e konstantave nga klasa prind, mund tĂ« pĂ«rdoret fjala kyçe "final". class Foo { public const X = «foo»; final public const Z = «foo»; } class Bar extends Foo { public const X = «bar»; }
  • Funksionet fsync dhe fdatasync janĂ« propozuar pĂ«r tĂ« ruajtur me forcĂ« ndryshimet nga memoria e diskut. $file = fopen(«sample.txt», «w»); fwrite($file, «Disa pĂ«rmbajtje»); if (fsync($file)) { echo «Skedari Ă«shtĂ« ruajtur me sukses nĂ« disk.»; } fclose($file);
  • ËshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« parafiseve «0o» dhe «0O» pĂ«r numrat oktal, pĂ«rveç parafisit tĂ« mĂ«parshĂ«m «0». 016 === 0o16; // true 016 === 0O16; // true
  • Propozohet tĂ« kufizohet selektivisht pĂ«rdorimi i $GLOBALS, qĂ« do tĂ« çojĂ« nĂ« njĂ« shkelje tĂ« pĂ«rputhshmĂ«risĂ«, por do tĂ« mundĂ«sojĂ« njĂ« rritje tĂ« dukshme tĂ« operacioneve me tabela. PĂ«r shembull, po shqyrtohet mundĂ«sia e ndalimit tĂ« shkrimit nĂ« $GLOBALS dhe kalimit tĂ« $GLOBALS me referencĂ«. Analiza e 2000 paketave tregoi se vetĂ«m 23 prej tyre do tĂ« preken nga ky ndryshim. PĂ«r shembull, nĂ« rastin e miratimit tĂ« propozuar nĂ« 8.1 do tĂ« ndĂ«rpritet mbĂ«shtetje pĂ«r shprehje tĂ« tilla si: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset($GLOBALS); by_ref($GLOBALS);
  • PunĂ«t kanĂ« vazhduar pĂ«r tĂ« kaluar funksionet nga pĂ«rdorimi i burimeve nĂ« manipulimin e objekteve. Funksionet finfo_* dhe imap_* janĂ« kaluar nĂ« objekte.
  • Kalimi i vlerave null si argumente nĂ« funksionet e brendshme, tĂ« shĂ«nuara si non-nullable, Ă«shtĂ« shpallur tĂ« jetĂ« i menduar si i vjetruar. NĂ« PHP 8.1, pĂ«rdorimi i konstruktimeve si str_contains("string", null) do tĂ« çojĂ« nĂ« njĂ« paralajmĂ«rim, dhe nĂ« PHP 9 nĂ« njĂ« gabim.
  • Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r algoritmet e hash-it MurmurHash3 dhe xxHash.

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster