Talen leren was nog nooit zo eenvoudig! Laat je met de PHP handleiding zien hoe je je website op basis van objectgeoriënteerd programmeren maakt.
Je kunt een PHP-zelfstudie verwachten over objectgeoriënteerd programmeren - fundamentele beginselen en praktijk.
Van harte welkom bij de cursus! Hier is een overzicht van wat je te wachten staat.
Laten we beginnen met het opzetten van jouw ontwikkelingsomgeving. Hier vind je de benodigde software.
Welke editor is de juiste keuze voor de voorbeelden? Hier vind je het antwoord.
Ik werk in de cursus met PhpStorm. In deze les zal ik je laten zien hoe de voorbeelden ook in andere editors geopend kunnen worden.
Ben je al helemaal gemotiveerd? Na deze video nog een beetje meer. Een voorproefje van het praktijkproject.
In PHP 7 zijn sommige dingen veranderd. Hier vind je een overzicht van enkele van de meest voor de hand liggende veranderingen.
Om het hoofdstuk over de basisprincipes wat spannender te maken, vul je hier ondertussen een invultekst in. Download het sjabloon, print het uit en bewerk het terwijl je door het hoofdstuk werkt.
Hier leg je de belangrijke basis, want objecten zijn niet zomaar een verzameling van gegevens en functies. Een belangrijke kennismaking met het onderwerp.
Wordt er gesproken over objectgeoriënteerd programmeren, dan valt vroeg of laat de term "klasse." Maar wat houdt dit in?
De gegevensencapsulatie is een belangrijk basisprincipe. In deze les leer je het idee erachter kennen.
Zonder abstractie zou jouw software al snel behoorlijk onoverzichtelijk worden en zou de gewenste vereenvoudiging niet worden bereikt. Bekijk deze video en leer abstracter te denken.
Ook overerving ondersteunt de architectuur van je software. Leer het te begrijpen en doelbewust toe te passen.
De polymorfie is het beste te begrijpen in de praktijk. Toch zou je op dit moment op zijn minst ervan gehoord moeten hebben.
Heb je de tekst zorgvuldig ingevuld? Geweldig! Hier kun je hem nu controleren.
Van de theorie naar de praktijk. Hier begin je nu met de uitvoering in PHP.
Een klasse is het ontwerp voor objecten. In PHP wordt een instantie gemaakt met het trefwoord "new". Hier leer je hoe dat moet.
De eigenschappen van een klasse beschrijven het object nader. Leer dit concept beter kennen.
De constanten zijn een extra manier om statische waarden op te slaan. Hier leer je ook dit principe kennen.
Bij het benoemen van variabelen enzovoort zijn er enkele algemeen aanvaarde conventies of "best practices". En daar gaat het hierover.
Ken je de principes "PassByValue" en "PassByReference"? Deze zijn extreem belangrijk bij het werken met objecten. Hier kom je erachter waarom.
De eerste kennismaking is voorbij. Verdiep je kennis met de eerste oefeningstaak.
Een mogelijke oplossing voor de opdracht vind je hier.
Nu leer je de basis syntaxis voor het declareren van functies.
Methoden worden echt dynamisch door parameters. Hier leer je deze ook kennen.
Methoden kunnen niet alleen broncode uitvoeren en uitvoer genereren. Hier leer je hoe waarden aan de caller worden geretourneerd.
Je kunt de methode naam voor het aanroepen in een variabele opslaan en vervolgens de variabele opnieuw gebruiken. Leer het hier kennen.
Er zijn verschillende geldigheidsgebieden die je moet kennen. Hier leer je ze kennen.
De volgende oefeningstaak staat op het programma. Deze keer gaat het over het onderwerp "Methoden".
De mogelijke oplossing voor de oefening over methoden bevindt zich in deze les.
Bij het werken met objecten speelt de verwijzing naar het huidige object ("$this") en de verwijzing naar de huidige klasse ("self") een bijzondere rol. Hier leer je beide kennen.
Bij het creëren en vernietigen van objecten kun je je eigen logica uitvoeren. Hiervoor dienen de constructors en destructors. Leer hier het principe kennen.
Leer hier de syntaxis voor overerving in PHP kennen.
Als je van een klasse erft, kan je met het trefwoord "parent" verwijzen naar de hoofdklasse. Hier laat ik je zien hoe dat moet.
Een belangrijke betekenis heeft de zichtbaarheid. Leer nu de trefwoorden "public", "private" en "protected" kennen.
De zichtbaarheid heeft niet alleen betrekking op eigenschappen. Hier breng je de kennis ook over op methoden.
Een belangrijk stijlmiddel zijn de zogenaamde interfaces. In deze les bekijk je ze aan de hand van een voorbeeld.
Ook in ons praktijkvoorbeeld spelen later statische methoden een belangrijke rol. Leer het concept hier beter kennen.
Abstracte klassen en methoden zijn nog een ander stijlmiddel voor softwarearchitecten. Ook zij moet je absoluut leren kennen.
Een methode mag niet meer worden overschreven? Maak het dan zichtbaar met het trefwoord "final".
Verdiep het werken met objecten nog meer in deze oefening.
Hier is de oplossing voor de oefening.
Wanneer objecten in tekstvorm worden opgeslagen of via het netwerk worden verzonden, wordt dit "serialisatie" genoemd. Leer hoe het werkt.
Niet altijd werkt de serialisatie perfect, bijvoorbeeld omdat na het opnieuw inlezen de verbinding niet automatisch opnieuw tot stand wordt gebracht. Leer hoe je hier extra kunt ingrijpen.
Met de magische methode "__invoke" maak je de rechtstreekse oproep van je objecten mogelijk.
Een veelgebruikte methode is om objecten leesbaar te beschrijven via de magische methode "__toString". Die zal ik je in deze les laten zien.
Bij een dynamisch datamodel kun je met magische methoden zoals "get", "set", enzovoort veel werk besparen. Dat kom je vaak in de praktijk tegen en je moet de techniek erachter kennen.
Bijvoorbeeld in condities wordt vaak gecontroleerd op bepaalde klassen. Daarbij helpt het sleutelwoord "instanceof" je in PHP, dat je hier nu leert kennen.
In PHP 7 geïntroduceerd: de anonieme klassen. Ze kunnen in sommige situaties onnodige overhead vermijden. In deze video vind je een praktisch voorbeeld.
Een kopie van objecten kan niet worden gemaakt via de variabelen. Alleen de referentie wordt doorgegeven. Je kunt echter objecten klonen. Hier leer je wat daarvoor nodig is.
In de objectgeoriënteerde wereld zijn uitzonderingen belangrijk, omdat fout situaties op verschillende niveaus kunnen worden doorgegeven en op de juiste plaats kunnen worden verwerkt. Leer hoe je ze moet gebruiken.
Ook nieuw in PHP 7: Type-hints voor scalaire datatypen zoals "string", "int" enz. Hier leer je hoe je ze moet gebruiken.
Ook nieuw in PHP 7: de declaratie van de returnwaarde van een methode. Hier zal ik de syntax hiervoor presenteren.
Tot nu toe waren de voorbeelden erg eenvoudig. In de praktijk ziet de structuur er complexer uit. Daar speelt de autolader een centrale rol. Leer hoe je hem instelt.
In deze les leg je de basis voor een schone projectstructuur.
De projectstructuur krijgt nu de finishing touch dankzij de namespaces. Leer ze hier kennen.
Wil je klassen uit andere namespaces gebruiken? Hier leer je de import kennen.
Over het "Singleton-patroon" wordt er slechts één instantie van een klasse aangemaakt. Hier leer je de implementatie kennen.
Wil je alle gegevens uit een eigen collectie of klasse lezen? Een iterator kan je daarbij helpen.
Een observer maakt een zeer losse koppeling mogelijk tussen verschillende delen van jouw applicatie. Leer dit ontwerppatroon nu kennen.
Een fabriek maakt instanties van je klassen aan. Dit minimaliseert de afhankelijkheden en centraliseert de aanroep van je constructors.
Leer het Model-View-Controller-patroon kennen, voordat we ons in de praktijk storten.
Wat gebeurt hier? Tank motivatie en bekijk alvast het eindresultaat.
Een functie van onze applicatie: het centrale instappunt. Hier zorg je voor de nodige randvoorwaarden via het ".htaccess"-bestand.
Het verwerken van de URL en het toewijzen van de juiste klasse gebeurt via het bootstrapproces. Hier maak je het.
De aangevraagde bron wordt toegewezen aan de controller en een actie.
Nadat de bronnen aangevraagd kunnen worden, moet je er natuurlijk ook een aantal aanbieden. En dat is precies wat hier gebeurt: via je eerste controller inclusief actie.
Een databasestructuur is de noodzakelijke voorwaarde voor verdere toepassing. Nu wordt het voorbereid.
In PHP 7 bestaan de "mysql_*"-functies niet meer. Hier leer je een op objecten gebaseerd alternatief kennen: PDO.
Het uiterlijk zal natuurlijk nog steeds bepaald worden door HTML/CSS. Hier leer je hoe de integratie gerealiseerd kan worden.
Het ontwerp voor de galerijweergave wordt hier uit het sjabloon gehaald en vervolgens geïntegreerd.
Een centraal ophaalbare basis-URL vind je in de meeste frameworks. Het kan bijvoorbeeld worden geconfigureerd of apart worden opgegeven voor beveiligde pagina's zoals de inlogpagina (mogelijk met https). Leer hoe dit gerealiseerd kan worden.
Je hebt het "Factory Design Pattern" al geleerd. Hier wordt het nu ook toegepast.
Voordat gebruikers in de applicatie kunnen worden geladen, is er een model nodig. En precies dat wordt nu aangemaakt.
Ook sessies worden ondersteund door de galerij. Hier wordt nu in de eerste stap de inlog gerealiseerd.
Ben je ingelogd? Wil je je nu weer afmelden? In deze les worden beide functies gecontroleerd.
De aanmelding is mislukt. Hier leer je hoe je waarden uit de sessie kunt lezen.
Nog een functie, nieuwe controller: formulieren verwerken. Hier kom je de voorbereiding tegen.
De upload moet ook worden verwerkt na het „POST-verzoek". Hier leer je alle benodigde stappen.
Een nieuwe afbeelding is succesvol overgedragen. Een referentie daarvan wordt in de database vastgelegd.
Hier leer je de meldingen in de sessie nog beter te beheren.
De geüploade afbeeldingen worden hier geschaald naar een gemeenschappelijke noemer (dezelfde hoogte).
Het praktijkvoorbeeld wordt uitgebreid met een oefening over het gebruikersaanmelding.
Een oplossing voor opgave #4 vind je hier.
De sterke punten van de MVC-architectuur worden benut en er wordt een extra controller met een afwijkend sjabloon gebruikt voor dezelfde database-logica.
De tot nu toe zeer statische routering wordt opnieuw geoptimaliseerd - met een eigen configuratiebestand.
De aangepaste routeringsoplossing moet nu worden meegenomen in het opstartproces.
Om de API ook te kunnen gebruiken, worden de afbeeldingen hier geüpload via een iOS-app.
Geef nu commentaar „PHP Tutorial - object georiënteerd programmeren: basis & praktijk“