PHP 8: Ghidul complet
Publicat: 2021-01-05Pe 26 noiembrie 2020, am intrat în noua lume a PHP 8. Fiecare actualizare PHP aduce o întreagă serie de caracteristici majore noi. Deși nu toate actualizările sunt importante pentru majoritatea utilizatorilor ocazionali, chiar și alte actualizări sunt prea de nișă pentru majoritatea dezvoltatorilor experimentați de WordPress.
Dar, indiferent de nivelul de dezvoltare pe care îl operați, aspecte ale noii versiuni, cum ar fi creșterea vitezei și modificări care ar putea afecta codul existent, ar putea avea un impact negativ asupra fluxului de lucru zilnic.
În acest ghid, vom parcurge cele mai importante schimbări din această nouă versiune de PHP 8. Să ne scufundăm.
De ce se întâmplă actualizările PHP
Ca motor, PHP se schimbă constant. Biti noi sunt mereu modificați sau adăugați pentru a ajuta la optimizarea codului și pentru a face PHP mai ușor și mai simplu de utilizat.
Creatorii de pluginuri și teme WordPress, împreună cu dezvoltatorii de site-uri web, trebuie să rămână la curent cu modificările PHP atunci când se întâmplă. Procedând astfel, veți fi cu un pas înaintea jocului și veți evita să treceți prin pagini de documentație după ce s-au mai întâmplat câteva actualizări.
Fiecare nouă versiune de PHP este destinată să aducă schimbări pozitive mediului de dezvoltare. Din păcate, există momente în care anumite modificări vă pot afecta codul existent.
Când atributele incompatibile, înapoi sau învechite se ciocnesc cu noile actualizări PHP, s-ar putea să ajungă la ruperea întregului site sau să provoace încetarea funcționării unor zone ale site-ului.
Este o idee bună să știți ce modificări potențiale de rupere sunt lansate, astfel încât să le puteți adresa direct în cadrul codului personalizat. Acest lucru vă ajută, de asemenea, să utilizați un cod mai nou, care are expresii mai optimizate.
Cu toate acestea, chiar dacă nu ați atins o singură bucată de cod personalizat în carieră, atunci când tabloul de bord WordPress adaugă o notificare necesară pentru actualizarea PHP WordPress pentru versiunea actualizată a PHP, va trebui să decideți dacă doriți să faceți upgrade sau nu.
Invariabil, răspunsul la această întrebare este aproape întotdeauna da. Dar înainte de a face acest lucru, este inteligent să priviți modificările majore ale caracteristicilor și să vă asigurați că nu există nimic care vă poate provoca probleme. Așa cum spune vechea zicală: „Este mai bine să fii în siguranță decât să-ți pară rău”.

Noutăți în versiunea PHP 8
Această lansare de PHP nu este, în niciun caz, cea mai mare actualizare care a venit. Dar există încă câteva schimbări interesante pe care ar trebui să le analizăm.
În unele privințe, este ușor că PHP 8 este o actualizare relativ mică. Aceasta înseamnă că există mai puține modificări care ar putea cauza probleme codului dvs. existent.
Cu alte cuvinte, versiunea curentă PHP vă oferă câteva funcții noi, fără a fi nevoie să petreceți ore întregi pentru depanarea problemelor.
Deși există câteva modificări suplimentare făcute în această versiune de PHP, acest ghid va acoperi cele mai relevante.
Compilator Just In Time (JIT)
Cel mai interesant și cu siguranță cel mai mare plus la noua versiune de PHP este compilatorul Just In Time sau JIT.
După cum probabil știți, PHP este un limbaj interpretat. Aceasta înseamnă că rulează în timp real, mai degrabă decât să ruleze la un timp de lansare prestabilit după ce a fost compilat.
Ceea ce aduce JIT în tabel pentru PHP este codul compilat. Cu codul compilat vine performanță îmbunătățită în anumite situații.
Dacă sunteți ca mulți dezvoltatori PHP, probabil că lucrați cu aplicații web. Din păcate, JIT nu va ajuta prea mult cu aplicațiile web. Dar marchează o îmbunătățire imensă atunci când vine vorba de sarcini precum:
- Analiza datelor
- Redare 3D
- AI
- Procese suplimentare care necesită mult timp pentru a rula
Deși acestea nu sunt neapărat cele mai obișnuite aplicații PHP actuale, dezvoltatorii care urmăresc cu siguranță se separă mai mult de PHP.
Compilatorul JIT vă ajută să faceți PHP mai flexibil în acest sens.
De fapt, JIT este aproape garantat să deschidă orizonturile PHP și să aducă noi dezvoltatori interesați să-l folosească în scopuri noi.
Pentru proiectele existente, probabil că nu va face prea multe.
Înainte de a implementa JIT, asigurați-vă că l-ați testat într-un mediu izolat pentru a vedea dacă există vreo îmbunătățire a performanței dvs.
Atribute
Noua versiune PHP acceptă atribute. Acestea sunt mici bucăți de metadate pe care le adăugați la cod, cum ar fi parametrii, clasele și funcțiile.
Aceasta înseamnă că nu mai trebuie să utilizați docblocks ca soluție standard. Deși acest lucru sună ca o schimbare minoră, de fapt face viața mult mai ușoară pentru dezvoltatorii PHP.
Acum puteți adăuga orice număr de atribute la orice bucată de cod individual, apoi le puteți importa cu instrucțiuni de utilizare.
Puteți adăuga chiar parametri atributelor.
Pentru a adăuga un atribut la codul dvs., pur și simplu adăugați două semne „mai puțin decât” și două semne „mai mari decât” care înconjoară atributul.
Este important să rețineți că atributele nu sunt compatibile cu versiunile anterioare. Vor provoca erori dacă sunt portate într-o versiune veche de PHP.
După cum probabil știți, soluția standard utilizând docblock este complet funcțională. Dar, de asemenea, a fost întotdeauna destul de ciudat. Cu noua versiune de PHP, puteți adăuga acum atribute direct.
Deși este un mic adaos la PHP, implicațiile sale sunt uriașe.
Expresie potrivire nouă
Instrucțiunile de comutare au fost o versiune mai robustă a instrucțiunilor if. Cu toate acestea, noile expresii de potrivire din PHP îmbunătățesc și mai mult acest concept.
Acest lucru este mai scurt și mai strict, ceea ce îl ajută să prindă mai bine bug-urile. De asemenea, combină condițiile și nu va necesita nicio declarație de pauză.
În aceste moduri, noile expresii de potrivire reprezintă o îmbunătățire marcată.
Comutatorul are în continuare avantajul asupra meciului, deoarece are capacitatea de a utiliza mai multe expresii. Dar, pe lângă asta, luați în considerare citirea expresiilor de potrivire.
Până acum arată ca un înlocuitor superior pe care poate doriți să îl utilizați.
Tipuri de uniune
Una dintre părțile cheie ale PHP sunt tipurile: Atribuirea unei variabile ca boolean, întreg, nul și așa mai departe.
Înainte de această lansare a PHP, erați permis să atribuiți numai variabile cu tipuri unice. PHP 8 vă permite să atribuiți două tipuri sau mai multe, altfel numite tip union.
De exemplu, veți putea atribui un tip float și un număr întreg și poate utiliza unul. Sunt specificate cu o linie între tipuri, cum ar fi float | int.
Desigur, nu veți putea combina golul cu niciun alt tip, deoarece se exclud reciproc.
Tipurile redundante sau duplicate, cum ar fi float | float, de asemenea, nu vor funcționa.
În versiunile mai vechi de PHP, puteți utiliza adnotări PHPDoc pentru a încerca să creați un tip de uniune funcțional. Acum, puteți sări peste acest tip de soluție și pur și simplu să atribuiți variabilele dvs. cu mai multe tipuri.
Returnare statică și tipuri mixte
Ca dezvoltator, se știe că returnările PHP sunt utilizate pentru a returna valoarea unei funcții. Înainte de această lansare, nu era o opțiune de a utiliza tipul static.
„Părinte” și „sine” erau tipuri de returnări care erau valide, dar „static” nu. Această problemă a fost abordată pe deplin în noua versiune PHP.

Deși nu este un caz de utilizare incredibil de obișnuit, dacă apare, veți fi cu siguranță bucuroși că aveți acces la el.
Veți găsi, de asemenea, un nou tip mixt. Ar putea fi descris mai exact ca un pseudo-tip, deoarece reprezintă orice alt tip care există în PHP.
Este cel mai bine utilizat atunci când aveți de-a face cu situații care vă solicită să lucrați cu mai multe tipuri diferite.
Mixed va fi implicit dacă nu alegeți un anumit tip.
Adesea, este mai bine să folosiți noul tip de uniune, mai degrabă decât mixt. Acest lucru se datorează faptului că probabil veți dori să fiți mai specific.
Cu toate acestea, acesta va servi în continuare un scop pentru dvs.
Realitatea este că niciuna dintre acestea nu este la fel de mare ca tipul uniunii, dar cu siguranță marchează o îmbunătățire.
Funcții PHP 8 noi
Noua versiune PHP vine cu funcții noi cu care puteți lucra.
- str_starts_with și str_ends_with - aceasta va verifica dacă un șir se termină sau începe cu o linie specifică
- fdiv - aceasta va permite divizarea care va reacționa în mod constant atunci când se împarte la zero
- str_contains - similar cu str_starts_with și str_ends_with, dar va verifica un șir complet
- get_debug_type - acționează similar cu gettype , dar va returna informații suplimentare, cum ar fi numele clasei
- get_resource_id - acest lucru face mai ușor să obțineți un ID pentru o resursă, cum ar fi o conexiune la bază de date
- preg_last_error_msg - returnează un mesaj de eroare care poate fi citit într-un limbaj simplu
Testați câteva dintre aceste funcții noi pentru a vedea cum puteți profita la maximum de acestea.
Argumente numite
Unii ar putea să-l iubească și alții ar putea să-l disprețuiască. Oricum ar fi, argumentele numite se află în noua versiune PHP.
Argumentele vă permit să transmiteți datele către o funcție. Argumentele denumite vă permit să faceți același lucru trecând numele argumentului mai degrabă decât ordinea.
Veți putea totuși să le combinați cu argumente ordonate. Dar, dacă doriți, veți putea sări peste parametrii opționali.
Practic vorbind, aceasta va însemna un cod mai curat și puține erori. La urma urmei, cu cât codul este mai strâns, cu atât mai bine. Este mult mai ușor să lucrezi cu.
Există șansa ca acest lucru să poată provoca o problemă cu schimbarea numelor argumentelor și compatibilitatea cu versiunile anterioare, care ar putea provoca pauze în versiunile PHP mai vechi. Dar pentru mulți dezvoltatori și programatori, aceste argumente numite sunt o schimbare binevenită.
Înfrângerea schimbărilor în PHP 8
Noua versiune PHP vine cu câteva modificări de ultimă oră. Acest lucru poate provoca erori dacă faceți upgrade sau reveniți la versiunile vechi de PHP. Aruncați o privire la această listă de modificări de ultimă oră și vedeți care dintre ele vă vor afecta.
- Avertismentele motorului au fost reclasificate astfel încât să arate nivelul adecvat de severitate, cum ar fi notificări, avertismente și erori fatale. Luați în considerare această modificare minoră care nu va afecta multe proiecte.
- TypeError se va afișa acum în mod obișnuit pe funcțiile interne. Acest lucru afectează compatibilitatea înapoi mai mult decât ne-am putea da seama încă, dar este totuși o schimbare solidă.
- Au fost făcute mai multe modificări la nivelurile de raportare a erorilor care anterior erau setate silențioase și ignorate. Cu alte cuvinte, noile erori pe care este posibil să nu le fi văzut înainte ar trebui să se propage acum.
- Sortarea este mai fiabilă și mai stabilă. Deși PHP 7 a făcut unele schimbări mari în sortare, cea mai nouă actualizare dăunează mult mai puțin codului existent.
- Numele cu spațiu de nume sunt acum un singur simbol. Nu pot avea spațiu alb înăuntru. Impactul acestei modificări este mic și simplu de remediat.
- În versiunile anterioare ale PHP, metodele care aveau un nume care să corespundă clasei erau interpretate ca fiind constructori. În noua versiune, va trebui să utilizați metoda __construct ().
Există zeci de alte mici actualizări care rareori vor cauza probleme. În general vorbind, nu veți avea multe probleme cu actualizarea actuală PHP.
Actualizarea versiunii dvs. PHP în WordPress
În calitate de dezvoltator WordPress, știți cât de important este să vă mențineți actualizată versiunea de PHP. Este alarmant să știi că o parte foarte semnificativă a utilizatorilor de WordPress funcționează în continuare pe PHP 5.6, ceea ce reprezintă o datorie uriașă.
Chiar dacă ați rulat PHP 7.4 și ați crezut că sunteți complet actualizat, acum este cu siguranță momentul să vă actualizați la cea mai nouă versiune PHP.
Rularea site-ului WordPress pe o versiune mai veche de PHP este un risc major de securitate. Versiunile PHP învechite au fluxuri de securitate exploatabile de care hackerii profită în mod regulat.
Singurul mod în care puteți corela găurile pot existente este prin menținerea PHP complet actualizată în orice moment.
De asemenea, veți dori să rulați un puternic plugin de securitate WordPress pentru a vă consolida protecția de securitate.
Un alt motiv pentru actualizarea PHP este datorită vitezei. Cu fiecare actualizare vine viteze mai mari și funcții mai optimizate. Desigur, cea mai mare diferență vizibilă a fost între PHP 5.6 și 7.4. Dar veți observa cu siguranță o creștere a vitezei cu cea mai nouă actualizare.
Compatibilitatea este ultimul motiv pentru care este important să mențineți PHP actualizat în WordPress.
O versiune învechită a PHP poate provoca multe probleme diferite care pot provoca erori sau pot rupe complet un site web.
Dincolo de aceasta, există teme și pluginuri care necesită o versiune PHP complet actualizată pentru a funcționa.
Înainte de a rula actualizarea, asigurați-vă că aveți un plugin de rezervă WordPress care rulează în cazul în care există conflicte după executarea actualizării.
Actualizarea versiunii dvs. de PHP este destul de simplă. Tot ce trebuie să faceți este să vă conectați la cPanel sau la tabloul de bord al administratorului gazdei pe care îl utilizați, găsiți Managerul de versiuni PHP și bifați ultima versiune. Dar, înainte de a rula actualizarea, consultați gazda pentru a vă asigura că acceptă cea mai nouă actualizare PHP. Unele pot rula pe un software mai vechi.
Pentru informații suplimentare despre PHP și WordPress, consultați documentația oficială WordPress.org despre WordPress și PHP 8.
Încheierea: PHP 8 și viitorul PHP
Deși PHP 7.0 - 7.4 nu a fost actualizarea monstru, PHP 8 are încă multe lucruri de oferit de care poți profita.
De la compilatorul JIT la noi atribute, expresia potrivirii și alte funcții utile pentru dezvoltatori, este timpul să vă familiarizați cu această nouă versiune importantă de PHP.
Ce părți din această actualizare prevedeți că utilizați cel mai mult în fluxul de lucru de zi cu zi?
Kristen a scris tutoriale pentru a ajuta utilizatorii WordPress din 2011. De obicei, o puteți găsi lucrând la articole noi pentru blogul iThemes sau dezvoltând resurse pentru #WPprosper. În afara muncii, Kristen se bucură de jurnal (a scris două cărți!), Drumeții și camping, gătit și aventuri zilnice cu familia ei, sperând să ducă o viață mai prezentă.
