In de afgelopen 12 berichten hebben we een kijkje genomen naar de basisprincipes van PHP, de basisprincipes van objectgeoriënteerd programmeren, hoe dit te doen binnen de context van WordPress, en we hebben zelfs gekeken naar het begin van meer tussenliggende concepten zoals als overerving.
Op dit moment is het tijd om de serie van deze beginners af te ronden, maar voordat ik dit doe, wil ik een samenvatting van elk van de artikelen geven, zodat we niet alleen een opfriscursus hebben van alles wat we hebben gedaan, maar zodat we ook een enkele overzichtspagina hebben om te bladwijzer voor referentie.
Met dat gezegd, laten we alles bekijken wat we tot dit artikel hebben behandeld. We nemen koppelingen terug naar het oorspronkelijke artikel, korte beschrijvingen en andere relevante informatie.
In de eerste post van de serie bespraken we waar we heen gingen met de artikelen die zouden volgen. Kortom, we hebben een gedetailleerd overzicht gegeven van wat we zouden bespreken en zijn daarna verder gegaan.
Misschien wel de belangrijkste weg te nemen van dit artikel was begrip "waar kan ik beginnen?" Dat is een vraag die veel mensen stellen als ze aan de slag gaan met programmeren.
Daarop zeiden we:
Maar degenen die al geruime tijd bezig zijn, vergeten vaak hoe het was om oorspronkelijk te proberen te achterhalen hoe code te ontcijferen, te begrijpen waarom iets was geschreven zoals het was, hoe de auteur wist welke functie en waar te gebruiken en de beweegreden achter bepaalde implementatiebeslissingen te bepalen.
We zijn er allemaal ooit geweest, toch? We hebben de code bekeken, geprobeerd om de stroom van controle te achterhalen en hebben ooit gevraagd: "waar moet ik beginnen?"
En het doel van deze serie is om die vraag te beantwoorden.
En dat is precies wat we wilden doen met de volgende punten die elk in hun eigen artikel werden behandeld.
Het doel van deze post was om de basis van objectgeoriënteerd programmeren te definiëren - klassen. Ten eerste hebben we vermeld dat klassen doorgaans worden gedefinieerd als de volgende:
Een klas is een blauwdruk voor het maken van een object.
Maar we erkenden ook dat dit voor de meeste mensen bijzonder verwarrend is vooral als ze net beginnen met objectgeoriënteerd programmeren.
Dus in plaats daarvan hadden we het over klasse in termen van welke kenmerken het definieert:
Dus laten we dit idee generaliseren naar objecten. Laten we in plaats daarvan het ene woord vervangen door het andere:
Een zelfstandig naamwoord is een object.
Een adjectief en een attribuut (of een eigenschap).
Een werkwoord is een methode (of een functie).
Daarnaast hebben we gekeken naar zowel goede als slechte voorbeelden van wat een klasse definieert, en we hebben gewerkt aan het definiëren van een mentaal model voor het maken van fotoklassen bij het werken met hen
Dit heeft uiteindelijk de basis gelegd voor de plug-in die we in de toekomst zouden gaan schrijven. Maar eerst moesten we ervoor zorgen dat we een goed begrip hadden van de basisprincipes van PHP voordat we naar de meer geavanceerde functie van klassen gingen..
In dit artikel hebben we gesproken over de twee typen die bestaan binnen WordPress:
En toen definieerden we elk van bovenstaande als zodanig:
Eenvoudige gegevenstypen worden als zodanig gedefinieerd omdat de gegevens die zij vertegenwoordigen, weet u, eenvoudig. Dat wil zeggen dat het normaal onder de vlag van waar, onwaar, decimalen en woorden en / of zinnen valt.
En toen zeiden we:
De twee primaire complexe datatypes waar we ons in deze reeks op zullen richten als arrays en objecten. Er zijn er meer, maar ze vallen buiten het bereik van deze serie, dus als je geïnteresseerd bent, neem dan gerust een kijkje in de PHP-handleiding, maar ik waarschuw je: als je een absolute beginner bent, kan de inhoud aanvoelen een beetje overweldigend.
Kortom, voorbeelden van het bovenstaande kunnen worden geïllustreerd als:
Natuurlijk zijn deze vooral nuttig zodra we ze beginnen te gebruiken in de context van geavanceerdere functies zoals voorwaardelijke statements en controlestructuren.
In het eerste artikel in de Controlestructuren serie hebben we gesproken over voorwaardelijke uitspraken.
Ten eerste herinneren dat:
"Controlestructuren" is een fraaie term die beschrijft hoe we dat kunnen, ahum, bepaal hoe de code door ons programma stroomt op basis van een aantal factoren.
De twee besturingsstructuren waar we het over hadden zijn als dan
verklaringen en switch / case
uitspraken, dan keken we naar voorbeelden van elk. Bovendien hebben we deze gebruikt in een deel van de code die we hebben geschreven in onze plug-in of in ons voorbeeld van overerving.
In dezelfde serie hadden we het over loops. Onthouden:
Stel dat we een set gegevens hebben, misschien een reeks van 10 berichten, en dat we de titel en de datum van elk bericht willen doorlopen en afdrukken. Loops stellen ons in staat om dit te doen.
De lijst met lussen waarbij we gekeken hebben:
voor
foreach
do
terwijl
En we hebben voorbeelden van elk bekeken en hoe deze te gebruiken terwijl we door een verscheidenheid aan gegevensstructuren heen werkten.
Na enkele fundamentele aspecten van de ontwikkeling van PHP te hebben behandeld, zijn we overgegaan tot het afdekken van functies - die nog steeds kunnen worden gebruikt bij procedureprogrammering - en attributen die uniek zijn voor objectgeoriënteerd programmeren.
Om samen te vatten, functies worden gebruikt om een werkeenheid te voltooien, maar ze gebruiken ook enkele van de bovengenoemde structuren om het werk te voltooien:
Variabelen, conditionals, loops, enzovoort, zijn ook verantwoordelijk voor het voltooien van een enkele werkeenheid; echter, elk van deze werkt in combinatie met elkaar om iets te bereiken dat iets groter is dan zijzelf.
We hebben toen een kijkje genomen naar een voorbeeld van verschillende functies - sommige waren uiterst eenvoudig, andere waren complexer en gebruikten alle bovenstaande typen, besturingsstructuren en loops.
Maar dat is nog niet alles: aangezien functies binnen een klasse kunnen bestaan en een klas helpen zijn werk te voltooien, werken ze ook samen met attributen (wat de bijvoeglijke naamwoorden van een object zijn, als je eerder in het artikel oproept).
Het ding over attributen is dit:
Het zijn niets anders dan variabelen zoals we eerder in de serie hebben bekeken, en ze kunnen elk type waarde bevatten, of het nu een primitief gegevenstype is, zoals een string, integer, boolean of het kan verwijzen naar een complexer gegevenstype zoals een array of een ander object.
Het punt is, ze zijn niet opgesloten in een functie. In plaats daarvan leven ze op klasniveau. En wanneer ze zich op klasniveau bevinden, is er een reikwijdte die ze - samen met de functies - moeten hebben.
Vanaf daar begonnen we te praten over de reikwijdte.
Kort gezegd, scope verwijst naar hoe variabelen en functies toegang kunnen krijgen van objecten van derden of onderliggende objecten binnen het programma.
In het artikel hebben we zelfs naar een diagram op hoog niveau gekeken, evenals een broncode die het punt heeft aangetoond.
De belangrijkste afhaalmaaltijd; echter, is dat toepassingsgebied kan komen in drie verschillende smaken:
openbaar
die beschikbaar is voor de klasse zelf en alle klassen van derdenbeschermde
die beschikbaar is voor de klasse zelf en alle subklassenprivaat
die alleen beschikbaar is voor de klasse waarin deze is gedefinieerdDit werd nog duidelijker toen we begonnen met het bouwen van onze plug-in met behulp van wat we hebben geleerd.
In de De plug-in bouwen serie, we hebben het eerst gehad over wat we eigenlijk aan het bouwen waren en toen begonnen we de plugin daadwerkelijk te implementeren.
Tijdens dit hele proces hebben we geleerd hoe belangrijk het is om de plug-in te plannen voordat we daadwerkelijk met de implementatie beginnen, zodat we een routekaart hebben, om te weten waar we naartoe gaan..
Nadat we dat gedaan hadden, begonnen we met de daadwerkelijke implementatie van de ideeën die we hadden geschetst tot een punt waarop we een volledig functionele plugin hadden die precies alles omvatte wat we tot nu toe hadden afgedekt.
We hebben de plug-in zelfs beschikbaar gemaakt voor download op GitHub.
Maar we waren nog niet klaar. Daarna moesten we de plug-in documenteren met de juiste code-opmerkingen om duidelijk te maken wat elk van onze bestanden, klassen, attributen en methoden.
In deze reeks artikelen hebben we eerst gesproken over de PSR-normen en de coderingsstandaarden van WordPress en we begonnen met het documenteren van de basisprincipes van onze plug-in.
Het was echter pas in het tweede deel van de serie dat we de documentatiestrategieën werkelijk gingen gebruiken als het bieden in de WordPress coderingsstandaarden. In deze post hebben we de rest van onze documentatie-inspanningen afgerond door opmerkingen te geven voor elke klasse, elk attribuut, elke functie en zelfs vereisen
statement dat in de plug-in bestaat.
Uiteindelijk is deze ontwikkeling van de plug-in afgerond en hebben we onze discussie kunnen overbrengen naar een meer gemiddeld onderwerp.
In de volgende twee berichten hebben we een van de meer gemiddelde onderwerpen van objectgeoriënteerd programmeren behandeld: Overerving. Dit was niet bedoeld als een all-inclusive-primer over het onderwerp, maar het moest voldoende zijn om diegenen van jullie te helpen met een beginnende interesse in objectgeoriënteerd programmeren in PHP, vertrouwd raken met hoe het werkt.
In het eerste artikel hebben we enkele basisprincipes bekeken en ook hoe deze in de hele WordPress-toepassing worden gebruikt, met name bij het gebruik van widgets.
In het laatste artikel hebben we onze eigen implementatie van overerving gebouwd die, hoewel zeer simplistisch, een bruikbare demonstratie biedt voor hoe vererving werkt binnen PHP.
Natuurlijk hebben we gedekt veel van inhoud in deze serie. Hopelijk hebben degenen onder jullie die net begonnen zijn met werken in WordPress en objectgeoriënteerd programmeren in het algemeen het nuttig gevonden.
Hoewel ik niet tegen het uitvoeren van een andere reeks geavanceerde onderwerpen ben, ben ik meer benieuwd naar uw feedback, opmerkingen en vragen over de huidige serie. Aarzel niet om dit aan te bieden in de reactiefeed.
Wat betreft toekomstige series, laat het me weten en we zullen zien wat we kunnen doen.
Anders dan dat, veel succes met je inspanningen met WordPress, objectgeoriënteerd programmeren, enzovoort. Ik kan niet wachten om te zien wat je verzint!