Programarea orientată pe obiecte în WordPress Un rezumat

În ultimele 12 postări, am analizat elementele de bază ale PHP, elementele de bază ale programării orientate pe obiecte, cum să procedăm în contextul WordPress și am analizat chiar și la începutul mai multor concepte intermediare, cum ar fi ca moștenire.

În acest moment, este momentul să desenați seria acestui începător, dar, înainte de a face acest lucru, aș dori să ofer un rezumat al fiecărui articol, astfel încât să nu avem doar o reîmprospătare a tot ceea ce am făcut, dar pentru a avea și o pagină de rezumat unică pentru a marca pentru referință.

Cu asta a spus, să revizuim tot ce am acoperit până la acest articol. Vom include link-uri înapoi la articolul original, descrieri scurte și alte informații pertinente.

O revizuire a programării orientate pe obiecte în WordPress

În primul post al seriei, am discutat unde ne-am îndreptat cu articolele pe care urma să le urmeze. Pe scurt, am oferit o schiță la nivel înalt cu privire la ceea ce am discutat și apoi am avansat de acolo.

Poate că cea mai importantă scăpare din acest articol a fost înțelegerea "de unde încep?" Care este o întrebare pe care mulți o întreabă atunci când începem să programăm. 

Pentru aceasta, am spus:

Dar cei care au fost la ea pentru o cantitate semnificativă de timp uită adesea ce a fost ca atunci când încearcă inițial să dau seama cum să descifreze codul, să înțeleagă De ce ceva a fost scris așa cum a fost, Cum autorul a știut să folosească ce funcție și unde și să determine rațiunea din spatele anumitor decizii de implementare.
Toți am fost acolo la un moment dat, nu? Ne-am uitat la cod, am încercat să ne dăm seama de fluxul de control și, la un moment dat, ne-am întrebat "unde să încep chiar?" 
Scopul acestei serii este de a răspunde la această întrebare.

Și așa este exact ceea ce ne-am propus să facem cu următoarele puncte care au fost acoperite fiecare în propriul lor articol.

1. Clase

Scopul acestui post a fost definirea fundamentelor programelor orientate pe obiecte - clase. În primul rând, am menționat că clasele sunt de obicei definite ca fiind următoarele:

O clasă este un model pentru crearea unui obiect.

Dar, de asemenea, am recunoscut că aceasta este o problemă deosebit de confuză pentru majoritatea oamenilor mai ales dacă încep doar programarea orientată pe obiecte. 

Deci, în schimb, am vorbit despre clasă în ceea ce privește caracteristicile pe care le definește:

Deci, să generalizăm această idee obiectelor. De fapt, să înlocuim un cuvânt cu altul:
Un substantiv este un obiect.
Un adjectiv și un atribut (sau o proprietate).
Un verb este o metodă (sau o funcție).

În plus, am analizat atât exemplele bune, cât și cele rele în ceea ce privește ce definește o clasă, iar noi am lucrat la definirea unui model mental pentru modul în care să lucrăm cu ele la cursurile de imagini

Acest lucru a pus în cele din urmă locul de muncă pentru pluginul pe care l-am fi scris în viitor. Dar, în primul rând, trebuia să ne asigurăm că am avut o înțelegere fermă a principiilor de bază ale PHP înainte de a trece la o caracteristică mai avansată a claselor.

2. Tipuri

În acest articol, am vorbit despre cele două tipuri care există în WordPress:

  1. Tipuri simple
  2. Tipuri complexe

Și apoi am definit fiecare dintre cele de mai sus ca atare:

Tipurile de date simple sunt definite ca atare, deoarece datele pe care le reprezintă sunt, știți, simplu. Aceasta înseamnă că, în mod normal, aceasta va cădea sub simbolul unor adevărate, false, zecimale și cuvinte și / sau fraze.

Apoi am spus:

Cele două tipuri de date complexe pe care le vom concentra în această serie ca arrayuri și obiecte. Există mai multe, dar sunt în afara sferei acestei serii, deci, dacă sunteți interesat, atunci nu ezitați să aruncați o privire la manualul PHP, dar vă avertizez: dacă sunteți un începător absolut, conținutul poate simți un pic copleșitor.

Pe scurt, exemplele de mai sus pot fi ilustrate ca:

  • boolean
  • numere întregi
  • numere cu numere plutitoare
  • siruri de caractere
  • matrice
  • obiecte
  • … și altele

Desigur, acestea sunt în primul rând utile după ce le începem să le folosim în contextul unor caracteristici mai avansate, cum ar fi declarațiile condiționale și structurile de control.

3. Structuri de control

În primul articol din Structuri de control , am vorbit despre declarații condiționate. 

Mai întâi, reamintiți că:

"Structurile de control" este un termen termen de fantezie care descrie modul în care putem, hm, modul în care codul curge prin programul nostru se bazează pe un număr de factori.

Cele două structuri de control despre care am vorbit sunt daca atunci declarații și comutator / caz declarații, apoi am analizat exemplele fiecăruia. Mai mult decât atât, le-am folosit în unele dintre codurile pe care le-am scris fie în plugin-ul nostru, fie în exemplul nostru de moștenire.

În aceeași serie, am vorbit despre bucle. Tine minte:

Să presupunem că avem un set de date, probabil un set de 10 postări, și că dorim să ne bifăm și să tipărim titlul și data fiecărui post. Buclele ne permit să facem acest lucru.

Lista buclelor la care am privit includem:

  • pentru
  • pentru fiecare
  • do
  • in timp ce

Și am analizat exemplele fiecăruia și cum le folosim în timp ce am iterat printr-o varietate de structuri de date.

4. Funcții și atribute

După ce am acoperit câteva din aspectele fundamentale ale dezvoltării PHP, am trecut la funcțiile de acoperire - care pot fi utilizate în continuare în programarea procedurală - și atributele care sunt unice pentru programarea orientată pe obiecte.

Pentru a rezuma, funcțiile sunt folosite pentru a finaliza o unitate de lucru, dar ele folosesc, de asemenea, unele dintre structurile menționate mai sus pentru a ajuta la finalizarea lucrării:

Variabile, condiționalități, bucle și așa mai departe sunt responsabile de completarea unei lucrări unice; totuși, fiecare dintre aceștia lucrează împreună cu ceilalți pentru a obține ceva puțin mai mare decât ei înșiși.

Apoi, am aruncat o privire asupra unui exemplu de diferite funcții - unele care erau extrem de simple, altele care erau mai complexe, care leverificaseră toate tipurile de mai sus, structurile de control și buclele.

Dar asta nu este totul: Deoarece funcțiile pot exista într-o clasă și ajută o clasă să-și completeze lucrarea, ei lucrează împreună cu atributele (adjectivele unui obiect, dacă vă amintiți din mai devreme în articol).

Lucrul cu atributele este următorul:

Acestea nu sunt altceva decât variabile așa cum am analizat mai devreme în serie și pot să dețină orice tip de valoare fie un tip de date primitiv, cum ar fi un șir, întreg, boolean sau poate referi la un tip de date mai complex, cum ar fi array sau alt obiect.

Chestia e că nu sunt blocați într-o funcție. În schimb, ei trăiesc la nivelul clasei. Și când locuiesc la nivelul clasei, există un nivel de aplicare pe care trebuie să-l aibă împreună cu funcțiile.

5. Domeniul de aplicare

De acolo, am început să vorbim despre domeniul de aplicare.

Pe scurt, domeniul de aplicare se referă la modul în care variabilele și funcțiile pot fi accesate de la obiecte terțe sau obiecte copil în cadrul programului. 

În articol, am analizat chiar o diagramă la nivel înalt, precum și un cod sursă care a demonstrat punctul.

Takeaway-ul cheie; totuși, domeniul de aplicare poate veni în trei arome diferite:

  1. public care este disponibil pentru clasa însăși și pentru toate clasele terțe
  2. protejat care este disponibil pentru clasa însăși și pentru toate subclasele
  3. privat care este disponibil numai pentru clasa în care este definită

Acest lucru a devenit mai clar când am început să construim plugin-ul folosind ceea ce am învățat.

6. Construirea pluginului 

În Construirea pluginului , am vorbit mai întâi despre exact ceea ce construim și de fapt am început să implementăm pluginul.

Pe parcursul acestui proces, am învățat importanța planificării plug-in-ului înainte de a începe de fapt punerea în aplicare, astfel încât să avem o foaie de parcurs, de fel, pentru a ști unde ne îndreptăm.

După aceasta, am început implementarea efectivă a ideilor pe care le-am prezentat până la punctul în care am avut un plugin complet funcțional care să acopere exact tot ce am acoperit până acum.

De fapt, am făcut pluginul disponibil pentru descărcare pe GitHub.

Dar nu am terminat încă. După aceea, a trebuit să documentăm pluginul folosind comentariile corecte pentru a explica ceea ce fiecare dintre fișierele, clasele, atributele și metodele noastre.

7. Documentați Plugin-ul

În această serie de articole, am vorbit mai întâi despre standardele PSR, precum și despre standardele de codificare WordPress și am început să documentăm elementele de bază ale pluginului nostru.

Cu toate acestea, până în a doua parte a seriei, am început cu adevărat să folosim strategiile de documentare ca în standardele de codificare WordPress. În acest post, am completat restul eforturilor noastre de documentare furnizând comentarii pentru fiecare clasă, atribut, funcție și chiar necesita instrucțiune care există în plugin.

În cele din urmă, această evoluție completă a pluginului ne-a permis să ne transferăm discuția pe un subiect mai intermediar.

8. Moștenire

În următoarele două postări, am abordat una dintre cele mai intermediare subiecte legate de programarea orientată-obiect: moștenirea. Acest lucru nu a fost menit să fie un prim all inclusive pe acest subiect, dar a fost menit să fie suficient pentru a vă ajuta pe aceia dintre voi cu un interes crescut în programarea orientată pe obiecte în PHP să vă familiarizați cu modul în care funcționează.

În primul articol, am aruncat o privire asupra unora dintre elementele fundamentale, precum și a modului în care este folosit în întreaga aplicație WordPress, în mod specific, atunci când se utilizează widget-uri.

În ultimul articol, am construit propria noastră implementare a moștenirii care, deși foarte simplistă, a oferit o demonstrație viabilă pentru modul în care moștenirea funcționează în cadrul PHP.

Concluzie

Evident, ne-am acoperit mult de conținut din această serie. Sperăm că cei dintre voi care încep să lucreze în WordPress și programele orientate pe obiecte în general au considerat că este util.

Deși nu mă opun difuzării unei alte serii de teme avansate, sunt mai curios cu privire la feedback-ul, comentariile și întrebările dvs. din seria curentă. Vă rugăm să nu ezitați să oferiți acest lucru în feedul de comentarii.

În ceea ce privește orice serie viitoare, anunțați-ne și vom vedea ce putem face.

În afară de asta, noroc cu eforturile dvs. cu WordPress, programare orientată pe obiecte și așa mai departe. Nu pot să aștept să văd ce vă aduceți!

Cod