Kmom01: Ramverk
I denna kursen skall vi lära oss programmera webbapplikationer på ett objektorienterat sätt med fokus på det arkitekturella designmönstret MVC. För att komma igång behöver vi en bas och där har vi valt ramverket Symfony som är ett av de mer kända ramverken inom PHP.
Vi börjar med att installera Symfony och bygger en webbplats med en kontroller (C:et i MVC) som ger oss grunden för kursens me-sida som skall innehålla detaljer om dig själv, kursen och dina redovisningstexter. Du använder vyer för att rendera webbsidorna (V:et i MVC). Vi provar även att skapa en sida som genererats med JSON, det blir ett embryo till att se hur man kan bygga en webbtjänst med ett så kallat RESTful API.
Vi skall också börja lära oss om grunderna med objektorientering och dess konstruktioner i PHP.
(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ö
(ca: 2-4 studietimmar)
Se till att du har kursens labbmiljö installerad.
- En översikt av labbmiljön som krävs för att genomföra första kursmomentet.
#Läs & Studera
(ca: 2-4 studietimmar)
#Föreläsning
Titta igenom följande föreläsningar.
- Kursintro som ger en introduktion till kursens struktur och upplägg samt en översikt av kursens innehåll.
- Introduktion till klasser och objekt i PHP, för att komma igång med grunderna i hur man skapar en klass och instansierar ett objekt. Koncept som objekt i sessioner, namespace och autoloader hanteras.
#Litteratur
Läs enligt följande.
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. Du kan se dokumentet som en innehållsförteckning till vad en god PHP-programmerare bör ha koll på.
Kika kort på webbplatsen för PHP ramverket Symfony. Fortsätt sedan att snabbt skapa dig en uppfattning om hur man installerar och kommer igång med ramverket (det finns även tips om videor som lärresurs).
Titta i guiden “Kom igång med Objektorienterad programmering i PHP” och se om den kan hjälpa dig med att förstå grunderna till klassbegreppet i PHP. Välj själv om du enbart använder guiden som läsresurs eller om du kodar dess övningsprogram.
#Övningar & Uppgifter
(ca: 8-12 studietimmar)
Övningar är träning inför uppgifterna, det är ofta klokt att jobba igenom övningarna. Uppgifter skall utföras och redovisas.
Jobba gärna i grupp med dina studiekompisar, men skriv alltid din egen kod för hand. Även om du tjuvkikar för att hitta bra lösningar så är det en stor skillnad att skriva koden själv jämfört med att kopiera från någon.
#Övningar
Jobba igenom övningarna, de förbereder dig inför uppgifterna.
- Kom igång med att “Installera och bygga en webbapplikation i Symfony”. Spara din kod i
me/kmom01/symfony
.
#Uppgifter
Följande uppgifter skall utföras och resultatet skall redovisas.
- Utför uppgiften “Bygg en me-sida till mvc-kursen”. Spara din kod i
me/report
.
#Resultat & Redovisning
(ca: 1-2 studietimmar)
Läs instruktionen om hur du skall redovisa.
Se till att följande frågor besvaras i din redovisningstext.
Berätta kort om dina förkunskaper och tidigare erfarenheter kring objektorientering.
Berätta kort om PHPs modell för klasser och objekt. Vilka är de grunder man behöver veta/förstå för att kunna komma igång och skapa sina första klasser?
Reflektera kort över den kodbas, koden, strukturen som användes till uppgiften
me/report
, hur uppfattar du den?Med tanke på artikeln “PHP The Right Way”, vilka delar in den finner du extra intressanta och värdefulla? Är det några särskilda områden som du känner att du vill veta mer om? Lyft fram några delar av artikeln som du känner mer värdefulla.
Vilken är din TIL för detta kmom?
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.
#Revision history
- 2023-03-28: (D, mos) Genomgången inför vt23, uppdaterad övning/uppgift.
- 2022-03-23: (C, mos) Nytt kmom inför mvc-v2 och vt22.
- 2021-03-29: (B, mos) Lade till läsresurs om Templating.
- 2021-03-25: (A, mos) Första versionen släppt för mvc-v1.