Kmom01: Objektorientering i PHP

By , . Latest revision .

Vi startar med grunderna i objektorienterad PHP, det blir objekt och klasser med inkapsling, konstruktorer och destruktorer, setters och getters, egenskapade exceptions och vi ser hur man kan lagra ett objekt i sessionen.

Vi bygger små enkla testprogram för att se hur sakerna fungerar.

Små testprogram hjälper oss att förstå grunderna.

Små testprogram hjälper oss att förstå grunderna.

För att komma igång med programmeringen så bygger vi en variant av spelet “Gissa vilket nummer jag tänker på” och vi implementerar spelet med GET, POST och SESSION. Det blir repetition av PHP och hur HTTP-protokollar, formulär och länkar fungerar tillsammans. Dessutom blir det en introduktion till klasser i PHP och ett exempel där vi bygger en klass för att användas från olika klienter.

Spela spelet Gissa mitt nummer med PHP.

Spela spelet Gissa mitt nummer med PHP.

Vi bygger dessutom en me-sida med Anax i en katalogstruktur som i längden kommer att ge oss en insikt i hur ett webbaserat ramverk kan byggas upp.

Mallen för me-sidan i oophp.

Mallen för me-sidan i oophp.

(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)

#Labbmiljön

(ca: 2-4 studietimmar)

Det finns en längre beskrivning om kursens labbmiljö. Läs den om du är osäker på vad som skall göras, eller om detta är din första dbwebb-kurs.

Den korta varianten är att du behöver installera labbmiljön, uppdatera dbwebb-cli samt klona och initiera kursrepot.

# Gå till din katalog för dbwebb-kurser
dbwebb selfupdate
dbwebb clone oophp
cd oophp
dbwebb init

#Läs & Studera

(ca: 4-6 studietimmar)

#Videor

Kika på följande videos.

  1. Det finns en YouTube spellista kopplad till kursen, kika på de videos som börjar med 0 och 1. De hälsar dig välkommen och ger dig en introduktion till kursen och till detta kursmoment.

#Artiklar

Kika igenom följande artiklar.

  1. Fräscha upp ditt minne av PHP genom att snabbt skumma igenom guiden “20 steg för att komma igång med PHP (php20)”. Du bör sedan tidigare (htmlphp) ha koll på det som nämns i guiden. Om du bygger exempelprogram för att testa och leka så kan du lägga dem i me/kmom01/php20.

  2. Bekanta dig snabbt och översiktligt med PHP manualen och stycket om Klasser och Objekt. Som vanligt är referensmanualen vår källa till information, så bli kompis med dess struktur och lär dig vilken typ av information du där kan hitta.

  3. Bekanta dig översiktligt med dokumentet PHP The Right Way. Det är skrivet av PHP communityn och ger en översikt över PHP som språk och de verktyg och processer man normalt arbetar med. Vi kommer att återkomma till dokumentet under kursens gång.

#Övningar & Uppgifter

(ca: 8-12 studietimmar)

#Uppgifter

Följande uppgifter skall utföras och resultatet skall redovisas via me-sidan.

  1. I guiden “Kom igång med Objektorienterad programmering i PHP” jobbar du igenom följande delar. Spara koden i me/kmom01/oophp1.

  2. Gör uppgiften “Gissa numret med PHP och GET, POST och SESSION”. Uppgiften låter dig värma upp din gamla PHP-kunskaper och samtidigt träna på grunderna med objekt och klasser. Spara din kod i me/kmom01/guess.

  3. Gör uppgiften “Bygg en me-sida för oophp med Anax”. Du skall bygga en me-sida som du taggar och publicerar på GitHub. Spara allt under me/redovisa.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i texten:

  • Hur känns det att hoppa rakt in i objekt och klasser med PHP, gick det bra och kan du relatera till andra objektorienterade språk?
  • Berätta hur det gick det att utföra uppgiften “Gissa numret” med GET, POST och SESSION?
  • Har du några inledande reflektioner kring me-sidan och dess struktur?

TIL är en akronym för “Today I Learned” vilket leksamt anspelar på att det finns alltid nya saker att lära sig, varje dag. Man brukar lyfta upp saker man lärt sig och där man kanske hajade till lite extra över dess nyttighet eller enkelhet, eller så var det bara en ny lärdom för dagen som man vill notera.

  • Vilken är din TIL för detta kmom?

#Revision history

  • 2018-03-23: (D, mos) Lade till videoserie för kmom.
  • 2018-03-19: (C, mos) Uppdaterad till oophp v4.
  • 2017-03-27: (B, mos) Länkar till phpcs, phpmd, psr-1, psr-2.
  • 2017-03-24: (A, mos, lew) Första versionen släppt.

Document source.