Hogyan befolyásolják az új PHP 8 változásai a WordPress webhely teljesítményét?

Napjaink egyik legjobb programozási nyelveként a PHP új módszereket kínál a webfejlesztés és a kódolás rugalmasabbá tételére. A PHP 8.0 és PHP 8.1 bevezetésével a PHP célja, hogy még többet hozzon az asztalra olyan új funkciókkal, amelyek jobb szintaxist, biztonságot és egyebeket kínálnak.

Olvassa tovább az alábbiakat, hogy többet megtudjon a PHP 8.0 újdonságairól és annak minden speciális funkciójáról. Fedezze fel a korábbi verziók összes főbb frissítését és fejlesztését, valamint azt, hogy ezek hogyan befolyásolhatják a WordPress webhelyét.

PHP kódolás

A PHP 8.0 frissítés megértése

A A PHP 8.0 frissítés jelentős változásokat kínál fejlesztőknek és webhelyeknek világszerte. A 2020-ban kiadott új funkciókat és fejlesztéseket ígért, amelyek általában jobb teljesítménnyel, szintaxissal, típusbiztonsággal és hibakezeléssel büszkélkedhetnek az innovatív megjegyzéskérés (RFC) és egyéb funkciók révén.

Bár a teljesítménybeli különbség nem olyan figyelemre méltó, mint a PHP 5 és a PHP 7 között, a PHP 8.0 minden kiadással folyamatos fejlesztéseket biztosít. Ráadásul a PHP 7-től a PHP 7.4-ig terjedő legtöbb változtatás többnyire elavult.

A PHP 8.0 és a PHP 8.1 is új funkciókat vezet be, amelyek segítségével a fejlesztők gyorsabban és rugalmasabban kódolhatnak. Az alábbiakban felsoroljuk azokat a leginkább figyelemre méltó ajánlatokat, amelyeket a fejlesztőknek figyelembe kell venniük.

Just-in-time összeállítás

A Just-in-time vagy JIT fordító az egyik legjobb újdonság a legújabb PHP-verziókban. Ezzel az RFC-vel a fejlesztők megkerülhetik a fordítást, hogy jelentősen javítsák a teljesítményt és a memóriahasználatot.

A PHP ezt az RFC-t az Opcache szinte független részeként valósítja meg. Ha a JIT engedélyezve van, a fejlesztők kódokat futtathatnak a CPU-n keresztül a harmadik féltől származó programok, például a Zend VM helyett, növelve a számítási sebességet.

A jobb numerikus kódolási megoldások mellett a JIT potenciálisan jobb teljesítményt is kínál a „tipikus” PHP webalkalmazás-kódokhoz. Ezen kívül lehetőség van több kód áthelyezésére C-ről PHP-re, mivel a PHP mostantól gyorsabb lesz a JIT révén.

Ezenkívül a PHP 8.0 két JIT-fordítót is bemutat: a nyomkövetést és az 1.5-öt. A kettő közül a nyomkövető JIT kínálja a legtöbb ígéretet azzal, hogy a szintetikus benchmarkokon körülbelül háromszoros teljesítményt mutat. Mindeközben az 1.5 kétszer jobb fejlődést mutat a régóta futó alkalmazásokhoz képest.

Olvasni:  Cookie-k, WordPress és a GDPR

Megnevezett érvek

A PHP legújabb verziója elnevezett argumentumokat tartalmaz a meglévő pozícióparaméterek kiterjesztésére. Mostantól a fejlesztők a bemeneti adatokat a paraméter neve alapján adhatják át egy függvénynek a pozíció helyett. Emiatt a nevezett érvek különféle előnyöket kínálnak a fejlesztőknek.

Egyrészt lehetővé teszi számukra, hogy érthetőbb kódokat hozzanak létre, mivel az argumentum jelentése öndokumentáló. Rendfüggetlen is, ami azt jelenti, hogy a fejlesztőknek nem kell ugyanúgy átadniuk argumentumokat egy függvénynek, mint a függvény aláírásának.

Ezenkívül a fejlesztők az érveket pozicionális argumentumokkal kombinálhatják. Ezenkívül lehetővé teszi számukra, hogy meghatározzák azokat az argumentumokat, amelyeket módosítani szeretnének. Így nem kell módosítaniuk az argumentumokat, ha nem akarják felülírni az alapértelmezett értékeket.

A megnevezett argumentumok osztály- vagy típusdeklarációkkal is hasznosak.

Szakszervezeti típusok 2.0

A korábbi PHP verziókban a fejlesztők csak szakszervezeti típusokat adhat meg a dokumentum megjegyzésekben. A PHP nem nyújtott támogatást, kivéve a „?Type syntax” és az „iterable” osztályt.

A PHP 8.0 célja az uniótípusok támogatása a függvényaláírásokban a 2.0 RFC uniótípusokon keresztül. A frissítés révén a fejlesztők többé nem hagyatkoznak a beépített dokumentációra.

Ezen túlmenően az uniótípusok támogatása a PHP-ben lehetővé teszi a fejlesztők számára, hogy különböző információosztályokat helyezzenek át a phpdoc-ból függvényaláírásokba. Emiatt különféle előnyöket érhetnek el, beleértve a hibák korai felismerését, a típusinformációk elavulásának megakadályozását és a típusok ellenőrzését az öröklődés során.

Nullsafe kezelő

Korábban a fejlesztők nem használhatták a null koalescing operátor metódushívásokon. Szükségük lenne közbenső ellenőrzésekre vagy opcionális segítőkre harmadik féltől származó keretrendszerekből. Az új nullsafe operátorral azonban a fejlesztők rendelkezhetnek ilyen funkciókkal a metódusokon. Ez azt jelenti, hogy a fejlesztők mostantól hívásláncot használhatnak a null ellenőrzési feltételek helyett. Ha a lánc egy elemének kiértékelése sikertelen, az egész végrehajtási lánc leáll, és az egész lánc „null”-ra értékelődik.

Attribútumok V2

Más nyelveken annotációk néven ismert attribútumok strukturált metaadatok, amelyeket a fejlesztők használhatnak a tulajdonságok meghatározásához objektumokhoz, elemekhez vagy fájlokhoz. A fejlesztők ezzel a funkcióval metaadatokat is hozzáadhatnak az összes osztálynévhez doblockok elemzése nélkül.

A PHP 7.4-ig az egyetlen módja a metaadatok hozzáadásának az osztályok deklarációihoz a doc-commenten keresztül volt. Az új Attributes V2 RFC segítségével a PHP strukturált, szintaktikai metaadatként határozza meg az attribútumokat, amelyeket a fejlesztők a típusok, függvények, tulajdonságok, metódusok, paraméterek és állandók deklarációihoz adhatnak hozzá.

Mostantól a fejlesztők hozzáadhatnak attribútumokat a docblock megjegyzés előtt vagy után, és ezek közül egy vagy több egy vagy több társított értékkel rendelkezhet.

V2 kifejezés egyezése

Akik ismerik a “kifejezéseket váltani” már tudja, miről szólnak a match kifejezések. Csak a megfelelő kifejezések a „váltás” jobb változata.

Olvasni:  DreamHost interjúk vezető szoftvermérnökkel és...

Például biztonságosabb szemantikát kínál, amely lehetővé teszi a fejlesztők számára, hogy csak egyszer adjanak vissza értékeket. Kombinálja a feltételeket anélkül, hogy az értékeket „megtörné”. Ráadásul nem alkalmaz típuskényszert, és szigorú típus-összehasonlításokat alkalmaz.

Építőipari ingatlanok promóciója

Ez az RFC tömörebb szintaxist vezet be a tulajdonság-deklaráció egyszerűsítésére, amelynek célja a konstruktor és a paraméterdefiníció egyesítése. Mostantól a fejlesztőknek jobb módja van a tulajdonságok vagy paraméterek deklarálására azáltal, hogy kevésbé redundánssá és rövidebbé teszik őket. Ez az RFC azt is lehetővé teszi a fejlesztők számára, hogy csökkentsék az értékobjektumokhoz írt alapkódot.

Saner karakterlánc a számok összehasonlításához

A PHP 8.0 ezt az RFC-t kínálja, hogy ésszerűbbé tegye a numerikus karakterláncok összehasonlítását. Egy ilyen feladat elvégzéséhez a PHP először egy számra öntötte a karakterláncot, majd elvégezte az egész számok vagy a lebegőpontok összehasonlítását. Bár ez a gyakorlat több szempontból is hasznos volt, végzetes hibákat idézhet elő a webhely funkcióival és biztonsági vonatkozásaival.

Amint már említettük, ennek az RFC-nek az a célja, hogy ésszerűbb viselkedést kínáljon a karakterlánc-szám összehasonlításhoz. Szám-összehasonlítást használ, amikor numerikus karakterlánccal hasonlítja össze, vagy átalakítja a számot karakterláncsá, és karakterlánc-összehasonlítást használ.

Konzisztens típushibák a belső funkciókhoz

illegális típusparaméter átadásakor, belső és felhasználó által meghatározott a funkciók másként viselkednek. A belső függvények nem dobnak „TypeError”-t, mint a felhasználó által definiált függvények. Ehelyett figyelmeztetéseket adnak ki, és „null”-ként adják vissza.

A PHP 8.0 ezeket az inkonzisztenciákat úgy kezeli, hogy egy RFC-t javasol, amely arra készteti a belső paraméterelemző API-kat, hogy „ThrowError”-t generáljanak a paramétertípusok eltérése esetén. Emiatt minden belső funkcióviselkedés következetesebb.

PHP kód

Új osztályok, interfészek és funkciók

A PHP 8.0 figyelemre méltó változásai közé tartozik a WeakMap osztály. A gyenge térkép általában adatok vagy objektumok gyűjteménye gyengén hivatkozott kulcsokkal. Az adatok gyenge hivatkozása azt jelenti, hogy nincs akadálya annak, hogy megsemmisüljenek, ami gyenge teljesítményt és memóriaszivárgást eredményez.

PHP 7.4 támogatja gyenge referenciák megőrizni az adatokra való hivatkozást, amely nem akadályozza meg azok megsemmisítését. A nyers, gyenge hivatkozások azonban önmagukra korlátozódnak.

Másrészt a gyenge térképek sokkal gyakoribbak a gyakorlatban. De lehetetlen hatékony gyenge térképet implementálni a PHP gyenge hivatkozásaira. A PHP 8.0 WeakMap osztályával a fejlesztők ezt megtehetik. Gyenge térképkulcsként objektumokat hozhatnak létre, amelyeket a fejlesztők vagy a program megsemmisíthet. Ez azt jelenti, hogy a PHP szemétnek tekinti és összegyűjti ezeket az objektumokat, ha hosszabb ideig semmi sem hivatkozik rájuk.

Olvasni:  Útmutató kezdőknek a Magento 2 szállítási módokhoz: Mik ezek és amp; Hogy kezdjed

A sok hasznos új PHP 8.0 szolgáltatás másik kiegészítése a Stringable felület. Ez az RFC automatikusan hozzáadja ezt a függvényt az összes „__toString()” metódust megvalósító osztályhoz. Ez azt jelenti, hogy a fejlesztőknek nem kell manuálisan kódolniuk az interfészt minden alkalommal, amikor egy osztály implementálja a kódot.

A PHP korábbi verzióiban az „strstr” és az „strpos” standard opciók voltak a fejlesztők számára, hogy tűt keressenek a karakterláncban. Sajnos sokan úgy vélték, hogy mindkét funkció nem elég intuitív, és zavaró lehet az új PHP-fejlesztők számára. Mostantól könnyebben kereshetnek egy karakterláncon belül az új „str_contains” függvénnyel.

Az str_contains mellett a PHP 8.0 „str_starts_with()” és „str_ends_with()”-t is kínál, hogy segítse a jobb tűkeresést a karakterláncon belül.

További új funkciók közé tartozik az „fdiv(),” „get_debug_type(),”, „get resource_id(),” „token_get_all()” objektum-megvalósítás, valamint a DOM-bejárási és manipulációs API-k.

Típusrendszer és hibakezelés

A PHP 8.0 különféle rendszer- és hibakezelési fejlesztéseket is kínál. Az egyik vegyes típusú. A „vegyes típus” segít megelőzni a hiányzó típusokat a kódban. A PHP-ben a hiányzó típusok azt jelenthetik, hogy egy függvény nullát ad vissza, egyet a több típus közül, vagy olyat, amelyre nem lehet típusjelezni.

Általában a „vegyes” tömböt, logikai értéket, hívható, int, float, null, objektumot, erőforrást és karakterláncot jelenthet. Az új vegyes típus révén a fejlesztők típusokat adhatnak hozzá a paraméterekhez, az osztálytulajdonságokhoz és a függvényértékekhez. Ez segít jelezni, hogy a típusinformációt nem felejtették el, hanem pontosabban határozták meg.

A PHP 8.0 másik jelentős fejlesztése a statikus visszatérési típus. A PHP 8.0 előtt a „self” tudott visszatérni, de a „static” nem. A PHP dinamikus típusának köszönhetően a fejlesztők ezt a funkciót hihetetlenül hasznosnak fogják találni.

A PHP által biztosított egyéb rendszer- és hibakezelési fejlesztések közé tartozik az absztrakt tulajdonságmódszer-érvényesítés, a mágikus módszerek helyes aláírása, a privát metódusokkal való öröklődés és az átsorolt ​​motorfigyelmeztetések. Végzetes hibákat is tartalmaz az inkompatibilis metódus-aláírások és az átlátszatlan objektumok a Curl, Gd, Sockets, OpenSSL, XMLWriter és XML kiterjesztések erőforrásai helyett.

Egyéb szintaktikai frissítések

A PHP 8.0 számos szintaktikai fejlesztést is kínál. Például a fejlesztők most már használhatják a „dob” kifejezést kifejezés helyett, így lehetővé válik, hogy különböző helyeken kivételeket dobjanak.

Ezenkívül a PHP 8.0 rendelkezik az RFC változó szintaxissal is, amely segít feloldani a program változó szintaxisának többszörös inkonzisztenciáját. Ezzel az RFC-vel a fejlesztők most már kezelhetik a figyelmen kívül hagyott kis eseteket.

Ezenkívül a PHP 8.0 nem rögzíti a fogásokat is. A frissítés előtt a fejlesztők egy kivételt egy változóban tároltak, ha el akarták fogni. A nem rögzítő fogásoknál kihagyhatják a változót.

Olvasni:  Öt kötelező eszköz a WordPress témafejlesztők számára

Ezenkívül a fejlesztők mostantól kezelhetik a névteres neveket egyetlen tokenként, és engedélyezhetik a „::class”-t az objektumokon. Ezenkívül lehetővé teszi a vesszőket a paraméterlistákban, a lezárás pedig az RFC listákat.

WordPress

Hogyan hat az új PHP a WordPress webhelyére

Jelenleg a WordPress a PHP 7.4, 8.0 és 8.1 verzióit támogatja. Sajnos néhány felhasználó nem hajlandó frissíteni, mert az új verziók nem kompatibilisek kedvenc témáikkal és bővítményeikkel.

Eközben kompatibilitási problémák csak akkor merülnek fel, ha nem a legújabb WordPress-verziókat, például az 5.9-et és a 6.0-t használják. Vannak, akik inkább nem teszik ezt, mert szívesebben dolgoznak régi vagy elavult szoftverekkel, ami megakadályozza, hogy a legújabb PHP-verzióra frissítsenek. Emiatt hajlamosak többet találkozni kérdések a fejlesztési folyamatban.

Másrészt azok a fejlesztők, akik kipróbálták a PHP legújabb verzióját a WordPress webhelyeiken, jobb és könnyebb fejlesztést tapasztalnak az új funkcióknak és fejlesztéseknek köszönhetően. A PHP 8.0 és 8.1 kiváló hibakezelést és optimalizálást kínál. Ráadásul a 8.1 a következő években aktív támogatást és biztonsági frissítéseket tervez.

A WordPress webhely felkészítése a PHP frissítésre

Mint említettük, a PHP 8.0-nak sajátos kompatibilitási problémái vannak a régebbi WordPress-verziókkal. A zökkenőmentes fejlesztés érdekében a legjobb, ha frissíti webhelyét az 5.9-es vagy 6.0-s verzióra, hogy támogassa az új PHP-funkciókat.

Ha nem szívesen frissítse WordPress webhelyét a legújabb verzióra, először tesztelheti különféle online eszközökkel, hogy megbizonyosodjon arról, hogy hiba nélkül folytathatja-e. Továbbá, mielőtt beállítaná webhelyét az új PHP 8.0-ra, a legjobb, ha először klónozza azt, hogy elkerülje a hibák miatti adatvesztést. Ha megtette, tesztelje a legújabb PHP-verzión, hogy megtudja, kompatibilisek-e.

Ha bizonyos témák és bővítmények nem működnek a PHP 8.0-val, frissítenie kell őket a legújabb verziójukra. Ahelyett, hogy visszatérne a régi PHP-hez, lépjen kapcsolatba a téma vagy a beépülő modul támogatási csapatával, és tájékoztassa őket a kompatibilitási problémáról. Frissíteniük kell webhelye funkcióit, hogy zökkenőmentesen működhessenek a PHP 8.0-val és PHP 8.1-gyel.

Erősítse meg WordPress webhelyét

A modern technológia rohamos fejlődésével a versenyképesebb és jól működő telephelyek iránti kereslet folyamatosan nő. Ez azt jelenti, hogy ha nem hajlandó alkalmazkodni az új trendekhez, akkor webhelyei lemaradhatnak.

Napjainkban a PHP programozási nyelv olyan új szolgáltatásokat kínál, amelyek a 8.0-s és 8.1-es verziójuknak köszönhetően a fejlesztőket a korábbinál jobb kódolásban segítik. Míg a mai újdonságok már sok mindent hoznak a fejlesztők számára, a PHP többet ígér a holnap webhelyei számára.

Új publikációk:

Ajánlott