Kmom01: Ramverk

By . Latest revision .

Vi tar en mjukstart för att komma in i ramverkstänkande och läser på om bra-att-ha kunskaper inom PHP och ramverk. Det handlar om nödvändiga verktyg och att nyttja den infrastruktur som finns kring PHP och att börja anamma ett modultänkande kring PHP och ramverk.

Vi tittar på ett par seminarier från konferenser och funderar på vad de försöker säga oss om aktuella tekniker och trender. Kanske kan det hjälpa oss när vi nu skall försöka skapa oss en egen bild av ramverksläget i PHP och om allmänna interna strukturer och designmänster i ramverk.

Vi skapar en sedvanlig me- och redovisa-sida med ramverket vilket kräver att vi sätter oss in i ramverkets grundstruktur.

För att komma igång med programmeringen i ramverket så bygger vi en mindre kontroller som fungerar som en webbsida och som en REST-server. Vi skapar enhetstester för kontrollern och når 100% kodtäckning.

Vi startar med en me-sida som bygger på ett ramverk med en modulär struktur.

Vi startar med en me-sida som bygger på ett ramverk med en modulär struktur.

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

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 ramverk1
cd ramverk1
dbwebb init

#Läs & Studera

(ca: 4-6 studietimmar)

#Artiklar

Kika igenom följande artiklar.

  1. Läs igenom PHP The Right Way. Det ger dig en allmän översikt om verktyg och processer som rekommenderas inom PHP communityn. Gör din egen kunskapsinventering och se vilka delar du kan, vilka delar du behöver bli bättre på och vilka delar har du ännu inte koll på? Du skriver resultatet som en del i din redovisningstext.

  2. För ett par år sedan kikade jag på vilka PHP ramverk som var mest populära. Läs artikeln på “Vilka blir de mest populära PHP-ramverken inför 2014?”. Gör sedan din egen (mini) undersökning för att finna mer aktuella resultat för att se vilka ramverk som för tillfället är mest populära inom PHP. Utför gärna arbetet i grupp så har du någon att diskutera med. Du skriver resultatet som en del i din redovisningstext.

#Videor

Kika på följande videos och kommentera dem i redovisningstexten.

  1. Titta på videon “PHP UK Conference 2017 - Eli White - State of the PHP Community”. Den ger dig en känsla av hur en community kring ett språk (PHP) kan fungera, på gott och ont. Fundera över utmaningar som ligger i att hålla en community levande och om det finns någon nytta med en commity.

  2. Titta på videon “PHP UK Conference 2017 - Michael Cullum - Towards a frameworkless world”. Den ger dig en bakgrund och översikt till PHP och ramverk och den föreslår en ramverkslös framtid. Håller du med föredragshållaren?

#Genomgångar

De genomgångar och föresläsningar som spelas in under kursen sparas i en spellista som uppdateras under kursens gång.

Du kan även finna äldre inspelade föreläsningar från tidigare kursomgångar.

#Ramverket Anax

Vi kommer jobba vidare i ramverket Anax, som du känner igen från oophp och design-kursen. Här är de moduler som du använde i oophp-kursen, inklusive badges om kodtäckning och kodkvalitet för respektive modul. Kika på modulens README om du behöver fräscha upp minnet.

Modul Kodtäckning Kodkvalitet
anax/commons Code Coverage Scrutinizer Code Quality
anax/controller Code Coverage Scrutinizer Code Quality
anax/database Code Coverage Scrutinizer Code Quality
anax/request Code Coverage Scrutinizer Code Quality
anax/response Code Coverage Scrutinizer Code Quality
anax/router Code Coverage Scrutinizer Code Quality
anax/session Code Coverage Scrutinizer Code Quality
anax/textfilter Code Coverage Scrutinizer Code Quality
anax/view Code Coverage Scrutinizer Code Quality

#Övningar & Uppgifter

(ca: 6-10 studietimmar)

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Bygg en redovisa-sida till ramverk1 (v2)”. Du behöver en me/redovisa-sida och vi använder ramverket Anax för att bygga den. Spara allt under me/redovisa.

  2. Gör uppgiften “En kontroller för att validera ip-adresser”. Spara koden under me/redovisa.

  1. Pusha och tagga din redovisa, allt eftersom och sätt en avslutande tagg (1.0.*) när du är klar med kursmomentet.

#Resultat & Redovisning

(ca: 3-4 studietimmar)

Läs instruktionen om hur du skall redovisa.

Lägg extra tid på skrivandet i momentet då redovisningstexten är aningen mer omfattande än normalt.

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

  • Gör din egen kunskapsinventering baserat på PHP The Right Way, berätta om dina styrkor och svagheter som du vill förstärka under kursen och det kommande året.
  • Vilket blev resultatet från din mini-undersökning om vilka ramverk som för närvarande är mest populära inom PHP (ange källa var du fann informationen)?
  • Berätta om din syn/erfarenhet generellt kring communities och specifikt communities inom opensource och programmeringsdomänen.
  • Vad tror du om begreppet “en ramverkslös värld” som framfördes i videon?
  • Hur gick det att komma igång med din redovisa-sida?
  • Några funderingar kring arbetet med din kontroller?
  • 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.

Har du frågor eller funderingar som du vill ha besvarade så ställer du dem i GitHub issues.

#Revision history

  • 2018-11-05: (B, mos) Uppdaterad inför v2, nya uppgifter.
  • 2017-08-08: (A, mos) Första utgåvan.

Document source.