A PHP 8.1 áttekintése

2022-08-04
Cikkünkben a  PHP 8.1 újdonságairól írunk. Bár már jó néhány hónapja megjelent ez a verzió, sokan - különböző okokból - mégsem váltottak még. Íme a legfontosabb tudnivalók.

A PHP 2021. november 25-én adta ki legújabb verzióját, a PHP 8.1-et.

Amint arról a hivatalos PHP oldal beszámolt, ez a verzió állítólag hatalmas frissítést hoz a programozási nyelvbe. Számos szolgáltatást adtak hozzá, módosítottak és megszüntettek annak érdekében, hogy javítsák a PHP 8.1 teljesítményét a korábbi verziókhoz képest.


A PHP 8.1 előnyei

A szolgáltatások elvégzett optimalizálásának köszönhetően a PHP 8.1 számos előnnyel rendelkezik a PHP előző verziójához képest, nevezetesen:

Jobb teljesítmény

A benchmark tesztek eredményei alapján a PHP 8.1 teljesítménye körülbelül 5-8%-kal gyorsabb, mint a PHP 8.0. Ez annak köszönhető, hogy a PHP beépített gyorsítótárazási funkciója, az Opcache egy öröklődési gyorsítótár funkcióval bővült.

Az öröklődő gyorsítótárazás különböző típusú osztályokat köt össze, majd egyidejűleg hajtja végre a gyorsítótárazási folyamatot az osztályokon. Ezután a gyorsítótárazási eredmények az Opcache megosztott memóriájában tárolódnak.

A gyorsítótárazási eredmények örökre tárolásra kerülnek, így csökken a szükséges parancsok száma. Ez bizonyítottan javítja a program általános teljesítményét.

Jobb JIT-támogatás

A PHP javítja a JIT (Just in Time) fordító támogatását, egy olyan technikát, amely lehetővé teszi a programok lefordítását olyan nyelvekre, amelyeket a számítógép megért, amikor a program valós időben fut.

A JIT valójában a PHP 8.0 óta elérhető, de képességei a PHP 8.1-ben ismét javultak. Az egyik a háttértámogatás hozzáadása az ARM64 architektúrához.

A JIT létezésének nincs pozitív hatása a közeljövőben. A távolabbi jövőben azonban lehetőség nyílik arra, hogy a PHP-t ne csak weboldalakhoz, hanem más célokra is használhasd, például mobilalkalmazásokhoz.

Enum

Az Enumokkal (a felsorolásos típusok - Enumerated Types rövidítése) a PHP 8.1 közvetlen támogatást kap az olyan adattípusokhoz, amelyek többféle rögzített értéket vehetnek fel. Ez a konstrukció már sok fejlesztő számára ismerős más programozási nyelvekből. Az enumokat PHP osztályokban implementálják, és ezért számos osztály szemantikáját öröklik.

Fibers

Az új PHP Fibers (más néven zöld szálak) funkcióval a program kiválasztott részei elszigetelten indíthatók, leállíthatók vagy befejezhetők. Az új PHP „Fibers” osztály lehetővé teszi a szálak megvalósítását. A szálak olyan kódblokkok, amelyek saját „veremmel” (változókkal és állapotokkal) rendelkeznek.

A szálakat a főszál indítja el, de a végrehajtás során nem szakíthatja meg őket. Egy szál leállítása vagy megszüntetése után csak a főszálon keresztül lehet újraindítani.

Magukkal a szálakkal továbbra sem lehetséges a kód párhuzamos végrehajtása, mivel egy meghívott szál szünetelteti a PHP tényleges végrehajtását. A szálak ezért elsősorban alacsony szintű interfészként szolgálnak a keretrendszer-fejlesztők számára. Ezeken a keretrendszereken keresztül aztán a függvények viszont elérhetővé tehetők a PHP-vel történő aszinkron fejlesztéshez.

fsync és fdatasync

Az fsync és az fdatasync segítségével a PHP 8.1 két új függvényt kap, amelyek kiegészítik a fájlrendszer-funkciók csoportját. Mindkét függvény hasonlít a már meglévő fflush függvényhez, amely az írási műveletek (fwrite) keretében a PHP belső pufferének az operációs rendszer felé történő átvitelét biztosítja.
A további funkciókról a hivatalos PHP oldalon olvashatsz.


Mit kell tudnom a frissítés előtt?

Függetlenül attól, hogy milyen webáruházról vagy CMS-rendszerről van szó, a következő dolgokat mindenképpen figyelembe kell vennie a frissítés előtt:

  • Ellenőrizd, hogy a webáruházad vagy CMS rendszered (már) kompatibilis-e a PHP 8.1-gyel.
  • A biztonság a legfontosabb: ezért a frissítés megkezdése előtt mindenképpen készíts biztonsági mentést!
  • Állíts be egy fejlesztői környezetet és oda telepítsd a PHP frissítést. Tesztek futtatásával a gyakorlatban is ellenőrizheted a frissítést, így még biztosabb lehetsz abban, hogy a frisssítés gond nélkül megtörténik majd.
  • Ne felejtsd el a bővítményeket is tesztelni a kompatibilitás szempontjából!
  • Ellenőrizd a forráskódot a szükséges változtatások szempontjából a PHP Migration Guide segítségével.
  • Ha a tesztek sikeresek voltak, onnantól semmi akadálya, hogy a frissítést telepítsd éles környezetbe is.


Mely alkalmazások és e-kereskedelmi rendszerek kompatibilisek?


Magento 2 és PHP 8.1

A Magento 2 a 2022. április 12-én megjelent 2.4.4-es verzióval kezdődően támogatja a PHP 8.1-et.

Magento 1 és a PHP 8.1

A Magento 1 élettartamának lejárta miatt nem feltételezhető, hogy lesz hivatalos támogatás a PHP 8.1-hez. A PHP 8.0 támogatásán jelenleg a "OpenMage Magento LTS" Magento munka részeként dolgoznak. A "Mage One" projekten keresztül hamarosan elérhetővé válhatnak a megfelelő javítások is.

Shopware 6 és PHP 8.1

A 6.4.9.0 verzió 2022. március 14-i kiadásával létrejött a PHP 8.0 és 8.1 kompatibilitás. Ez azonban jelenleg csak a Shopware 6 Professional és Enterprise kiadásaiban érhető el. Remélhetőleg a PHP 8.1 a közeljövőben a Community Editionnel is kompatibilis lesz.

Shopware 5 és a PHP 8.1

A 2022. január 5-én megjelent 5.7.7-es verzióra történő frissítéssel a Shopware 5 kompatibilis a PHP 8.1-gyel.

WordPress és PHP 8.1

A WordPress-nek természetesen nem minden verziója kompatibilis a PHP 8.1-gyel. A fejlesztés folyamatos, de mivel egy Wordpress oldal legtöbbször nem csak az alaprendszerből áll, ezért a plugin-ek kompatibilitását feltétlenül ellenőrizni kell az átállás előtt.
A Wordpress legfrissebb, 6.0 verziója már kompatibiilis a PHP 8.1-gyel írásunk megjelenésének időpontjában.

Drupal

A Drupal 9 és a Drupal 10 már kompatibilis a PHP 8.1 verzióval is.


Ha érdekel a téma, nézd meg kapcsolódó IT képzéseinket:

Webfejlesztő képzés
Webszerkesztés, HTML, CSS alapok képzés
Junior frontend fejlesztő képzés
Junior Java backend fejlesztő képzés