Objektorienterad programmering i WordPress En sammanfattning

Under de senaste 12 inläggen har vi tittat på grunden för PHP, grunderna i objektorienterad programmering, hur man gör det inom WordPress, och vi har till och med tittat på början av fler mellanliggande begrepp som sådana som arv.

Vid denna tidpunkt är det dags att dra nybörjarserien till ett nära men innan jag gör det vill jag ge en sammanfattning av var och en av artiklarna så att vi inte bara får en uppdatering av allt vi har gjort, men så att vi också har en enda sammanfattande sida till bokmärke som referens.

Med det sagt, låt oss se över allt vi har täckt upp till den här artikeln. Vi kommer att inkludera länkar tillbaka till den ursprungliga artikeln, korta beskrivningar och annan relevant information.

En översyn av objektorienterad programmering i WordPress

I det första inlägget i serien diskuterade vi var vi ledde med de artiklar som skulle följa. Kort sagt, vi gav en översikt över vad vi skulle diskutera och fortsatte sedan framåt.

Kanske den viktigaste ta bort från den här artikeln var att förstå "var ska jag börja?" Vilket är en fråga som många frågar när man börjar med programmering. 

Till det sade vi:

Men de som har varit på det under en betydande tid glömmer ofta hur det var när de ursprungligen försökte räkna ut hur man dechiffrerar kod, förstår Varför något var skrivet som det var, på vilket sätt författaren visste att använda vilken funktion och var och bestämma motiveringen bakom vissa genomförandebeslut.
Vi har alla varit där någon gång, eller hur? Vi har tittat på koden, försökt räkna ut flödet av kontroll och frågade på en gång "var börjar jag ens?" 
Och syftet med denna serie är att svara på den frågan.

Och så är det precis vad vi syftade till att göra med följande punkter som var täckta vardera i sin egen artikel.

1. Klasser

Syftet med detta inlägg var att definiera grunden för objektorienterad programmering - klasser. Först nämnde vi att klasser typiskt definieras som följande:

En klass är en ritning för att skapa ett objekt.

Men vi insåg också att det här är en särskilt förvirrande för de flesta speciellt om de bara börjar objektorienterad programmering. 

Så i stället pratade vi om klassen vad gäller vilka egenskaper det definierar:

Så låt oss generalisera denna idé till objekt. Låt oss faktiskt ersätta ett ord för en annan:
Ett substantiv är ett objekt.
Ett adjektiv och ett attribut (eller en egenskap).
Ett verb är en metod (eller en funktion).

Dessutom tittade vi på både bra och dåliga exempel på vad som definierar en klass, och vi arbetade med att definiera en mental modell för hur man bildar klasser när man arbetar med dem

Detta lade slutligen grundarbetet för det plugin som vi skulle skriva i framtiden. Men först behövde vi se till att vi hade en bestämd förståelse för grunden för PHP innan vi gick in i den mer avancerade funktionen i klasserna.

2. Typer

I den här artikeln pratade vi om de två typerna som finns inom WordPress:

  1. Enkla typer
  2. Komplexa typer

Och då definierade vi var och en av ovanstående som sådan:

Enkla datatyper definieras som sådana eftersom de data de representerar är, vet du inte, enkel. Det vill säga att det normalt kommer att falla under bannern av sanna, falska, decimaler och ord och / eller meningar.

Och då sa vi:

De två primära komplexdatatyper som vi kommer att fokusera på i denna serie som arrays och objekt. Det finns fler, men de ligger utanför ramen för denna serie, så om du är intresserad, ta gärna en titt på PHP-manualen, men jag varnar dig: om du är en absolut nybörjare kan innehållet känna lite överväldigande.

Kortfattat kan exempel på ovanstående illustreras som:

  • booleska
  • heltal
  • flytande punktnummer
  • strängar
  • arrayer
  • objekt
  • … och mer

Naturligtvis är dessa först och främst användbara när vi börjar använda dem inom ramen för mer avancerade funktioner som villkorliga uttalanden och kontrollstrukturer.

3. Kontrollstrukturer

I den första artikeln i Kontrollstrukturer serie, vi pratade om villkorliga uttalanden. 

Först minns det att:

"Kontrollstrukturer" är en snygg term som beskriver hur vi kan, hm, kontrollera hur koden flyter genom vårt program baserat på ett antal faktorer.

De två kontrollstrukturerna som vi pratat om är om då uttalanden och switch fallet uttalanden, så tittade vi på exempel på var och en. Utöver det anställde vi dessa i en del av koden som vi skrev i antingen vårt plugin eller i vårt exempel på arv.

I samma serie pratade vi om loopar. Kom ihåg:

Antag att vi har en uppsättning data, kanske en uppsättning av 10 inlägg, och att vi vill gå igenom och skriva ut titeln och datumet för varje inlägg. Loops tillåter oss att göra detta.

Listan över slingor som vi tittade på inkluderade:

  • för
  • för varje
  • do
  • medan

Och vi tittade på exempel på varje och hur man använder dem samtidigt som det löser sig genom olika datastrukturer.

4. Funktioner och attribut

Efter att ha täckt några av de grundläggande aspekterna av PHP-utveckling gick vi vidare till täckningsfunktioner - som fortfarande kan användas i procedurprogrammering - och attribut som är unika för objektorienterad programmering.

Sammanfattningsvis används funktioner för att slutföra en arbetsenhet men de använder också några av de ovan nämnda strukturerna för att komplettera arbetet:

Variabler, conditionals, loopar och så vidare är ansvariga för att slutföra en enhetsenhet också; men alla arbetar tillsammans med varandra för att uppnå något något större än dem själva.

Vi kollade sedan på ett exempel på olika funktioner - några som var extremt enkelt, andra som var mer komplexa som utnyttjade alla ovanstående typer, kontrollstrukturer och loopar.

Men det är inte allt: Eftersom funktioner kan existera inom en klass och hjälpa en klass att slutföra sitt arbete, arbetar de också i samband med attribut (som är adjektiv för ett objekt, om du kommer ihåg tidigare i artikeln).

Saken med attribut är detta:

De är inget annat än variabler som vi har tittat på tidigare i serien, och de kan hålla någon typ av värde, om det är en primitiv datatyp som en sträng, heltal, booleskt eller det kan referera till en mer komplex datatyp, såsom en array eller ett annat objekt.

Saken är, de är inte låsta in i en funktion. I stället bor de på klassnivå. Och när de bor på klassnivå finns det en omfattning som de - tillsammans med funktionerna - måste ha.

5. Omfattning

Därifrån började vi prata om omfattning.

Kortfattat refererar räckvidd till hur variabler och funktioner kan vara åtkomst från tredje parts objekt eller barnobjekt inom programmet. 

I artikeln tittade vi även på ett diagram på hög nivå samt en viss källkod som visade poängen.

Den viktigaste borttagningen; dock är det att omfattningen kan komma i tre olika smaker:

  1. offentlig som är tillgänglig för själva klassen och alla tredje klasser
  2. skyddad som är tillgänglig för klassen själv och alla underklasser
  3. privat som endast är tillgänglig för den klass där den definieras

Det blev ännu tydligare när vi började bygga vårt plugin med det vi har lärt oss.

6. Bygg pluggen 

Bygg pluggen serier, vi pratade först om exakt vad vi faktiskt skulle bygga och då började vi faktiskt implementera plugin.

Under hela processen har vi lärt oss vikten av att planera ut plugin innan vi faktiskt börjar implementera så att vi har en färdplan, av olika slag för att veta var vi är på väg.

Därefter började vi det faktiska genomförandet av de idéer som vi hade skisserat till den punkt där vi hade ett fullt fungerande plugin som täckte exakt allt vi hade täckt upp till denna punkt.

Vi har faktiskt gjort pluginet tillgängligt för nedladdning på GitHub.

Men vi var inte färdiga än. Därefter behövde vi dokumentera pluginet med korrekt kodkommentarer för att förklara vad var och en av våra filer, klasser, attribut och metoder gör.

7. Dokumentera pluginprogrammet

I denna serie artiklar pratade vi först om PSR-standarderna liksom WordPress-kodningsstandarderna och vi började dokumentera grunderna i vårt plugin.

Det var emellertid inte förrän i andra delen av serien att vi verkligen började använda dokumentationsstrategierna enligt WordPress Coding Standards. I detta inlägg avrundade vi resten av våra dokumentationsinsatser genom att ge kommentarer för varje klass, attribut, funktion och till och med fordra uttalande som finns i plugin.

I slutändan avrundade detta utbyggnaden av plugin och fick oss att överföra vår diskussion till ett mer mellanliggande ämne.

8. Arv

Under de två följande inläggna täckte vi ett av de mer mellanliggande ämnena med objektorienterad programmering: Arv. Detta var inte tänkt att vara en allomfattande primer på ämnet, men det var tänkt att vara tillräckligt för att hjälpa de av er med ett växande intresse för objektorienterad programmering i PHP bli bekant med hur det fungerar.

I den första artikeln tog vi en titt på några av de grundläggande principerna och hur det används i WordPress-programmet, speciellt när du använder widgets.

I den slutliga artikeln byggde vi vårt eget genomförande av arv som, trots att det var mycket förenklat, gav en fungerande demonstration för hur arvet fungerar inom PHP.

Slutsats

Självklart har vi täckt mycket av innehållet i denna serie. Förhoppningsvis har de som bara har börjat arbeta med WordPress och objektorienterad programmering i allmänhet funnit det.

Även om jag inte motsätter mig att köra en annan serie avancerade ämnen, är jag mer nyfiken på din feedback, kommentarer och frågor om den aktuella serien. Snälla ger dig det i kommentarfältet.

Vad gäller framtida serier, låt mig veta och vi får se vad vi kan göra.

Annat än det, lycka till med dina strävanden med WordPress, objektorienterad programmering och så vidare. Jag kan inte vänta med att se vad du gör med!