Kmom04: Lagra innehåll i databasen

By . Latest revision .

Version 3 av oophp.

Utveckling av nytt kursmoment pågår. Kursmomentet släpps senaste den 17/4 2017 släpptes 2017-04-18.

Att lagra innehåll i databasen för att sedan kunna visa upp det i webbplatsen är en kärnfunktionalitet i många webbplatser. Så här långt har vi en fungerande webbplats om använder sig av databas och objektorienterad programmering. Vi fortsätter att använda de teknikerna för att bygga grunden i en databasdriven webbplats där innehåll lagras i databasen och kan redigeras av användaren (CRUD). Vi skall sedan visa upp innehållet som vanliga sidor i webbplatsen samt en blogg.

Utmaningen är att hitta en bra lagringsstruktur i databastabellen, en bra och flexibel struktur som låter oss använda innehållet på ett smidigt sätt i webbplatsen och leder till effektiv SQL. Tänker man till när man skapar lagringsstrukturen så kan man spara ett antal kodrader när man sedan skall redigera, och visa upp innehållet i webbplatsen.

Utmaningen ligger även i hur man väljer att konstruera sina klasser, kanske går det att skapa en generell struktur som klarar både det ena och det andra och även är förberedd för att byggas ut.

Ett formulär för att jobba CRUD med innehåll i databasen.

Ett formulär för att jobba CRUD med innehåll i databasen.

En blogglista med alla inlägg med senaste inlägget först.

En blogglista med alla inlägg med senaste inlägget först.

Innehållet formatteras och filtreras för att bli HTML.

Innehållet formatteras och filtreras för att bli HTML.

(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.)

#Läsanvisningar

(ca: 2-4 studietimmar, inklusive extra läsning i referenslitteraturen efter eget val)

#Kurslitteratur

Det finns inga specifika lästips i kurslitteraturen.

#Artiklar

Läs följande artiklar.

  1. Läs översiktligt igenom “Kokbok för databasmodellering” som ger dig grundläggande förståelse för hur du kan tänka när du modellerar en databas.

#Lästips

Följande tips från coachen används i övningen och uppgiften.

  1. “Reguljära uttryck i PHP ger BBCode formattering”
  2. “Låt PHP-funktion make_clickable() automatiskt skapa klickbara länkar”
  3. “Skriv för webben med Markdown och formattera till HTML med PHP (v2)”

#Övningar & Uppgifter

(ca: 12-16 studietimmar)

#Övningar

Gör följande övning, den förbereder dig inför uppgifterna och löser ett par av dem.

  1. Jobba igenom guiden “Lagra innehåll i databas för webbsidor och bloggposter (v2)”. Spara dina exempelprogram under me/kmom04/content.

#Uppgifter

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

  1. Gör uppgiften “Skapa en klass för textfiltrering och formattering”. Den färdiga klassen integrerar du i me/anax-lite. Vill du testa och utveckla i en separat katalog så använder du me/kmom04/textfilter.

  2. Gör uppgift “Bygg webbsidor från innehåll i databasen” och spara filerna i me/anax-lite.

  3. Gör uppgiften “Dokumentera din ER-modell med Reverse Engineering”. Spara resultatet i me/kmom04/er1.

  4. Pusha och tagga ditt Anax Lite, allt eftersom och sätt en avslutande tagg (4.0.*) när du är klar med alla uppgifter i kursmomentet.

#Extra

Det finns inga extrauppgifter.

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

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

  • Finns något att säga kring din klass för texfilter, eller rent allmänt om formattering och filtrering av text som sparas i databasen av användaren?
  • Berätta hur du tänkte när du strukturerade klasserna och databasen för webbsidor och bloggposter?
  • Förklara vilka routes som används för att demonstrera funktionaliteten för webbsidor och blogg (så att en utomstående kan testa).
  • Hur känns det att dokumentera databasen så här i efterhand?
  • Om du är självkritisk till koden du skriver i Anax Lite, ser du förbättringspotential och möjligheter till alternativ struktur av din kod?

#Revision history

  • 2017-04-18: (A, mos) Första utgåvan.

Document source.

Category: kurs oophp, kurs oophp-v3.