A PHP 8.1 áttekintése
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
Hamarosan induló tanfolyamok:
- 2025-02-08 Junior Java backend fejlesztő
- 2025-02-08 Junior frontend fejlesztő
- 2025-02-12 Junior Java backend fejlesztő
- 2025-02-12 Junior frontend fejlesztő
- 2025-02-12 Junior rendszerüzemeltető
- 2025-02-13 Junior Java backend fejlesztő
- 2025-02-13 Junior frontend fejlesztő
- 2025-02-13 Junior szoftvertesztelő
- 2025-02-15 Junior szoftvertesztelő
- 2025-02-15 Junior rendszerüzemeltető
- 2025-02-19 Junior szoftvertesztelő
- 2025-02-19 Junior rendszerüzemeltető