Kmom06: Lagra innehåll i databasen

By . Latest revision .

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 (CRUD) av användaren. Vi skall sedan visa upp innehållet som vanliga sidor i webbplatsen samt en blogg.

Det vi bygger är egentligen grunden i ett enkelt Content Mangement System (CMS) där användaren kan redigera webbplatsens innehåll via ett webbaserat gränssnitt.

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äs & Studera

(ca: 1-2 studietimmar)

#Videor

Kika på följande videos.

  1. Det finns en YouTube spellista kopplad till kursen, kika på de videos som börjar med 6. De ger dig en introduktion och översikt till kursmomentet.

#Lästips

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

  1. Gör en läsbar url med slugify()
  2. Reguljära uttryck i PHP ger BBCode formattering
  3. Låt PHP-funktion make_clickable() automatiskt skapa klickbara länkar
  4. 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.

    1. Jobba igenom guiden “Lagra innehåll i databas för webbsidor och bloggposter (v2)”. Spara dina exempelprogram under me/kmom06/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 (v2)”. Den färdiga klassen integrerar du i me/redovisa. Vill du testa och utveckla i en separat katalog så använder du me/kmom06/textfilter.

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

  3. Pusha och tagga ditt repo me/redovisa allt eftersom och sätt en avslutande tagg (6.0.*) när du är klar med alla uppgifter och redovisningstext i kursmomentet. Gör även en avslutande make doc och en make test som en sista avstämning, innan du sätter sista taggen.

#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 gick det att jobba med klassen för filtrering och formatting av texten?
  • Berätta om din klasstruktur och kodstruktur för din lösning av webbsidor med innehåll i databasen.
  • HUr känner du rent allmänt för den koden du skrivit i din me/redovisa, vad är bra och mindre bra? Ser du potential till refactoring av din kod och/eller behov av stöd från ramverket?
  • Vilken är din TIL för detta kmom?

#Revision history

  • 2018-04-30: (B, mos) Uppdaterad inför oophp v4 och bytte kmom nummer.
  • 2017-04-28: (A, mos) Första utgåvan.

Document source.

Category: kurs oophp-v3, kurs oophp.