WordPress și programarea orientată pe obiecte – O prezentare generală

Publicat: 2021-04-20

Dacă sunteți un dezvoltator WordPress, este probabil să vă scrieți codul într-un mod procedural. Setați câțiva pași ordonați simpli și îi urmați pentru a obține rezultatul dorit și pentru a rezolva o problemă. Un exemplu simplu este o buclă WordPress ca cea prezentată mai jos:

 <?php if ( have_posts() ) { while ( have_posts() ) { the_post(); // // Post Content here // } // end while } // end if ?>

Într-o buclă, verificați mai întâi dacă aveți postări care corespund interogării care rulează și, dacă da, începeți să treceți în buclă prin postări cu bucla while. Același lucru este valabil pentru fiecare funcție personalizată pe care o veți introduce în fișierul functions.php .

În acest articol, vom trece de la programarea procedurală și ne vom uita la un stil de programare numit Programare orientată pe obiecte (OOP). Vom examina modul în care acesta este diferit de ceea ce ați folosit până acum ca stil de programare și vom arunca o privire la câteva dintre avantajele acestuia. Dar, cel mai important, vom explica cum funcționează conceptele orientate pe obiecte într-un mediu WordPress și relația dintre ele.

Ceea ce am dori să stabilim înainte de a ajunge mai departe în acest domeniu este că este important să învățați despre rolul programării orientate pe obiecte și când este potrivită pentru a fi utilizată. Învățarea cum să construiți un plugin sau o temă orientată pe obiecte poate fi potrivită pentru proiectul dvs., dar este important să înțelegeți când este cazul. Sperăm că acest articol vă va ajuta să înțelegeți când și de ce un anumit proiect poate fi potrivit pentru a fi scris în cod orientat pe obiecte.

Problema

WordPress însuși v-a împins deja să gândiți procedural. Și, deși WordPress folosește obiecte PHP tot timpul, nu rezultă că WordPress în sine este orientat pe obiecte. Aceasta este o interpretare greșită comună a despre ce este OOP și motivul pentru care mulți oameni cred că WordPress este orientat pe obiecte, deși nu este.

Este important să clarificăm că nu spunem că ar trebui să vă abțineți de la a utiliza programarea procedurală, dar este adevărat că există limitări în acest stil de codare. De exemplu, atunci când personalizați o temă sau un plugin, este probabil să obțineți rezultatul HTML dorit prin scrierea codului într-un mod procedural. Dar cum rămâne cu scalabilitatea și întreținerea viitoare?

Când construiți un plugin personalizat, este foarte important să faceți un bilanț și să evaluați cât de scalabil va fi. De exemplu, probabil că veți dori să vă puteți dezvolta pluginul prin adăugarea de funcții suplimentare pe măsură ce pluginul se maturizează. În acest moment, veți începe să aveți dificultăți în organizarea codului atunci când codificați procedural.

Dar chiar dacă nu codificați pluginuri, cu programarea procedurală vă asumați întotdeauna riscul de a ajunge într-un punct în care nu mai sunteți sigur cum se mai potrivește totul. Drept urmare, fiecare mică schimbare pe care o faci poate avea consecințe nedorite.

Programarea orientată pe obiecte este folosită pentru a rezolva probleme mai complicate. Poate împărtăși același scop cu programarea procedurală, dar în multe cazuri oferă un mod superior de lucru. Vă permite să creați soluții îndrăznețe la o problemă care sunt reutilizabile, organizate și sigure.

Cum rezolvă problemele programarea orientată pe obiecte

Programarea orientată pe obiecte are două concepte importante: clase și obiecte .

Clasele sunt în esență un șablon folosit pentru a face obiecte. Fiecare obiect are propriile metode și setul de proprietăți, iar valoarea acelor proprietăți poate varia.

Deci, înainte de a merge mai departe, este vital să ne asigurăm că înțelegem ce este un obiect. Să descompunem o propoziție simplă ca exemplu:

„Mănânc mere verzi”.

Apple este obiectul, verdele este culoarea obiectului (o proprietate a obiectului), iar verbul „eat” este metoda (funcția).

O clasă definește proprietățile și comportamentul tuturor obiectelor care o folosesc. Rezolvarea problemelor cu OOP se realizează prin combinarea acestor „cărămizi” de programare în mod corect.

Înainte de a vă scufunda, un prim pas important este să vă acordați ceva timp pentru a proiecta soluția propusă. În esență, ceea ce trebuie să faci este:

  1. Definiți problema și ce ar trebui să facă pluginul pentru a o rezolva
  2. Descrieți clasele și relațiile lor, precum și interacțiunea dintre obiecte
  3. Transformă totul în cod
  4. Examinați și testați proiectul

În timp ce sunteți la acest pas, rețineți că veți avea noroc dacă o veți obține perfect la prima încercare! Va trebui să o luați de la capăt până când veți obține conceptul potrivit care va rezolva problema. Considerați-l ca parte a unui proces creativ care vă va oferi un set de instrumente pe care le puteți utiliza ulterior ca o echipă fără conflicte.

Într-un articol următor legat de POO vom demonstra un exemplu simplu care va aduce la viață toată teoria de mai sus.

Caracteristicile programării orientate pe obiecte

Înainte de a intra în caracteristicile programării orientate pe obiecte, să vedem dacă putem clarifica mai departe cum funcționează cu o simplă metaforă.

Să presupunem că avem un cazan pe care îl folosim pentru a fierbe apă. Când folosim mașina, o facem într-un anumit mod, singurul mod pe care ne-o permite producătorul. Nu putem trece peste modul în care funcționează centrala atunci când apăsăm butonul „Pornit” și, să fiu sincer, nici nu ne-am dori sau nu am avea nevoie. Asta ne oferă două avantaje foarte importante.

În primul rând, funcționalitatea limitată (adică să fierbem puțină apă) înseamnă că sistemul este atât mai robust, cât și mai sigur. Setul limitat de caracteristici și furnizarea doar a unui buton „Pornit/Oprit” înseamnă că noi, ca utilizator, nu ne putem apropia de mecanismul cazanului. În mod implicit, acest lucru înseamnă că există mai puține probleme și sistemul este mai robust în ansamblu. Simplitatea operațiunii îl face, de asemenea, mult mai ușor de utilizat, cu aproape oricine poate să-l folosească.

Găzduiește-ți site-ul web cu Pressidium

GARANTIE 60 DE ZILE BANI RAPIS

VEZI PLANUL NOSTRU

Ținând cont de acest lucru, să vedem cum se leagă acest lucru cu programarea orientată pe obiecte. În teorie, OOP are trei caracteristici valoroase: încapsulare, moștenire și polimorfism .

Ceea ce face Encapsulation este să grupeze datele și comportamentul într-o singură entitate. În interiorul clasei, puteți defini modul în care va fi utilizată (butonul cazanului) și puteți controla vizibilitatea utilizând etichetarea Publică, Protejată sau Privată pe Clase. De asemenea, acesta este un sistem foarte sigur, deoarece vă oferă posibilitatea de a controla cine are acces. Acest lucru înseamnă, de asemenea, că este mai ușor de întreținut și de utilizat.

Moștenirea înseamnă a vă ajuta să reutilizați codul între clase. Un astfel de exemplu este atunci când o clasă extinde o altă clasă. S-ar putea să fi folosit acest lucru atunci când extindeți Clasa Walker pentru a modifica rezultatul HTML a datelor de tip arbore, cum ar fi un meniu sau o structură de comentarii. Înțelegerea relației dintre clasele dvs. vă va permite să creați cod reutilizabil orientat pe obiecte.

În cele din urmă, polimorfismul este ceea ce face ca toate aceste relații să funcționeze împreună, ceea ce definește ce au în comun clasele tale, cum să reutilizați aceste elemente comune și dacă sunt legate de orice altceva.

Concluzie

Fără câteva exemple concrete, este probabil ca toate cele de mai sus să fie încă puțin confuze. Cu toate acestea, este totuși important să explicăm teoria din spatele programării orientate pe obiecte și în articolele viitoare vom continua cu câteva exemple utile, astfel încât să puteți vedea cum să utilizați această metodă de programare interesantă în lumea reală.

Scopul nostru este ca, atunci când veți încheia citirea seriei noastre de articole despre POO, veți fi sigur că veți folosi această metodă de programare într-o mare varietate de situații. Între timp, poate doriți să continuați să citiți despre OOP pe Wikipedia.

Faceți clic aici pentru a citi partea 2 din seria noastră de programare orientată pe obiecte