Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

  • Författare
  • Meddelande
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg09 dec 2011, 09:09

(kortlänk: http://dbwebb.se/lydia/tutorial). Senast uppdaterad 2012-05-07.

Lydia, ett PHP-baserat och MVC-inspirerat CMF

Denna tutorial visar hur du stegvis bygger ett MVC-ramverk, eller mer "exakt", ett PHP-baserat och MVC-inspirerat Content Management Framework (CMF). Vi döper ramverket till Lydia.

Tutorialen är uppbyggd i delar där varje del har ett visst fokus. Följande delar finns.

* Grunden i ett MVC ramverk
* Bygg ut ramverket och gör en gästbok
* Skapa modell och hantering av användare, grupper, profil och login
* Skapa och spara innehåll i databasen som sidor ("page") och poster ("post")
* Ett tema med vertikalt och horisontalt grid
* Dokumentera koden och använd ramverket för att bygga en webbplats


Grunden i ett MVC ramverk

Här skapar vi grunderna i MVC-ramverket. Jobba igenom följande delar och du har en bra start till ditt egna MVC-ramverk.

Bild

Lydia: Skicka alla requester till index.php
Lydia: Grundstrukturen i index.php
Lydia: Frontcontroller route
Lydia: Theme engine render
Lydia: Vilken är webbplatsens base_url?
Lydia: Låt ramverket skapa interna länkar
Lydia: Städa och publicera koden på github (v0.1.1)


Bygg ut ramverket och gör en gästbok

Här bygger vi ut ramverket med ett gränssnitt mot databasen, vy-hantering i kontrollern och en exempel-kontroller i form av en gästbok.

Bild

Lydia: En gemensam basklass för kontrollers (v0.1.2)
Lydia: En kontroller för en gästbok (v0.1.3)
Lydia: Gästboken sparar till databas (v0.1.4)
Lydia: Ett gränssnitt mot databasen (v0.1.5)
Lydia: Separera SQL-satserna från PHP-koden (v0.1.6)
Lydia: Separera HTML från kontrollern med vyer (v0.1.7)
Lydia: Skicka meddelanden mellan sidanrop via sessionen (v0.1.8)
Lydia: En modell för gästboken (v0.1.9)


Skapa modell och hantering av användare, grupper, profil och login

Vi bygger ut ramverket med en modell för användare som underlättar hantering av login, skapa nya användare, användarens profil och under tiden försöker vi samtidigt finna en effektiv och smidig hantering av formulär.

Bild

Lydia: CMUser, en modell för användare (v0.2.01)
Lydia: Användare tillhör en eller flera grupper (v0.2.02)
Lydia: Användaren som en del av CLydia (v0.2.03)
Lydia: Meny för inloggning (v0.2.03)
Lydia: Visa tillgängliga kontrollers med Reflection (v0.2.04)
Lydia: Stöd för hantering av formulär (v0.2.05)
Lydia: Formulär för användarens profil (v0.2.06)
Lydia: Integrera med Gravatar (v0.2.07)
Lydia: Lagra lösenordet säkert och flexibelt (v0.2.08)
Lydia: Validera fälten i postade formulär (v0.2.09)
Lydia: Skapa ny användare (v0.2.10)


Skapa och spara innehåll i databasen som sidor ("page") och poster ("post")

Gör kod för att lagra webbplatsens innehåll i databasen. Lagra innehållet som olika typer av information och visa den som en vanlig sida eller en blogglista. Pröva olika sätt att formattera innehållet, både som ren text, html, php-kod, bbcode och "städad" html-kod.

En sida som ser ut så här (BBCode):

Bild

Visas upp på detta sätt (BBCode formatterad till HTML):

Bild

Lydia: Hantera innehållet på en webbplats, dess "content" (v0.2.11)
Lydia: Presentera innehållet som sida och blogg (v0.2.12)
Lydia: Spara allt, filtrera och formattera vid utskrift (v0.2.13)
Lydia: Formattera innehåll enligt BBCode (v0.2.14)
Lydia: Filtrera innehåll med HTMLPurifier (v0.2.15)


Ett tema med vertikalt och horisontalt grid

Här fortsätter vi att utveckla tema-delen och gör ett nytt tema som baseras på LESS och semantic.gs som ger ett horisontalt grid. Dessutom inför vi ett vertikalt grid och stylar typografin så att den matchar gridet. Vi inför regioner i temat och kopplar innehållet i vyerna med regionerna.

Så här kan det se ut när vi är klara.

Regioner utplacerade enligt grid.
Bild

Typografi stylad enligt vertikalt grid.
Bild

Lydia: Nytt tema baserat på LESS (v0.2.16)
Lydia: Grid och layout regioner (v0.2.17)
Lydia: Koppla innehåll till regioner (v0.2.18)
Lydia: Vertikalt grid med typografi (v0.2.19)
Lydia: Hantera statiskt innehåll i temat (v0.2.20)


Dokumentera koden och använd ramverket för att bygga en webbplats

Det närmar sig slutet på tutorialserien och Lydia är flygfärdigt, eller? Vi bygger en modulhanterare som visar upp de olika moduler som Lydia består av. Med Reflection API:et får vi en dokumentation av ramverkets kod. Vi skapar ett installationsförfarande och testar Lydia genom att bygga en webbplats. Under testet så märker vi ett par saker som fattas, bland annat menyhantering och förbättrad hantering av länkning. Slutligen får vi en webbplats med Lydia.

Resultatet kan se ut så här.

En webbplats som testfall för Lydia:
Bild

Dokumentation av Lydia:
Bild

Lydia: En modulhanterare till Lydia (v0.2.21)
Lydia: Installationsfasen (v0.2.22)
Lydia: Skapa en webbplats med Lydia (v0.2.23)
Lydia: Dokumentera koden med phpdoc och modulhanteraren (v0.2.24)


Avslutningsvis

Denna tutorialserie är en del av kursen phpmvc där du bygger ett eget PHP-baserat MVC-inspirerat Content Management Framework. I Kursen gås alla tutorial igenom och därefter avslutas kursen med ett projekt där studenten bygger en webbplats enligt en kravspec genom att använda, och kanske utöka, sitt egna ramverk. Därmed tar Lydia's tutorial slut efter detta. Lycka till med ditt ramverksbyggande och kom ihåg att hela tiden utveckla ramverket i takt med dina projekt, på det viset får du ett levande ramverk som lever i takt med dina projekt.

Lycka till!


Källkod och exempelsite

Lydia kan provköras och granskas här:

http://dbwebb.se/lydia/current (senaste versionen)
http://dbwebb.se/lydia/source.php
http://dbwebb.se/lydia/tags (respektive taggad version)

Koden för Lydia finns på github och taggarna relaterar till de olika övningarna i tutorialen.

https://github.com/mosbth/lydia
...
..:
.... /mos
Användarvisningsbild

rocky

html-kodare

  • Inlägg: 16
  • Blev medlem: 14 nov 2011, 00:07

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg08 jan 2012, 15:25

mos skrev:Läs på innan
Det finns flera tutorials på nätet som är relevanta. Du bör läsa någon av dem för att kunna kritiskt granska och diskutera den kod som Lydia kommer att bestå av. Här följer ett par som är värda tiden att studera:

http://www.phpro.org/tutorials/Model-Vi ... r-MVC.html
(mer tutorials som ni har erfarenhet av, någon?)


I våras följde jag JREAMDesigns youtube-tuts ganska mycket för att verkligen skaffa mig en uppfattning om själva MVC-tänket. Jag är själv inte så intresserad (längre) av att bygga ett MVC-system från grunden utan ser det mer som ett bra sätt att förstå hur andra har tänkt när de påbörjat sitt bygge. Numera jobbar jag i http://www.kohanaframework.org och bygger ett admin-system som påminner om vad ExpressionEngine är för CodeIgniter.

PHP: Create Your Own MVC (Part 1)


PHP: Create Your Own MVC (Part 2)


PHP: Create Your Own MVC (Part 3)


PHP: Create Your Own MVC (Part 4)


PHP: Create Your Own MVC (Part 5)


PHP: Create Your Own MVC (Part 6)


De här hjälpte mig att komma över min första tröskel och förstå MVC-tänket innan jag satte igång med CodeIgniter efter BTH-studierna.
Hoppas det kan hjälpa någon!

mvh
Jonas

(ps. mos - fixa youtube-knappen!)
--
rocky
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg21 mar 2012, 13:41

De tutorials som ligger under "Grunderna i ett MVC-ramverk" har fått en rejäl genomgång. De kommer att användas i kursen phpmvc som körs på campus nu i lp4.
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg09 apr 2012, 18:06

Två nya och uppdaterade delar av tutorialen Lydia finns nu ute.

* Bygg ut ramverket och gör en gästbok
* Skapa modell och hantering av användare, grupper, profil och login

De är en del av kursen phpmvc.
...
..:
.... /mos

karlingen

html-kodare

  • Inlägg: 12
  • Blev medlem: 09 okt 2012, 11:57

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg18 nov 2012, 11:18

Du verkar ha problem med din bild-host. Alla bilder verkar vara broken.
Något du kan fixa? :)
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg20 nov 2012, 09:31

karlingen skrev:Du verkar ha problem med din bild-host. Alla bilder verkar vara broken.
Något du kan fixa? :)


Argh.

:evil:

Nackdelen med att använda en extern tjänst. Som dessutom man har betalt för. Sen väljer de att stänga ned sin webbplats och sluta visa bilderna. Tydligen.

Hata Evernote. Dessutom gjorde de programmet Skitch sämre när de tog över. Me missnöjd.

Ska se om jag kan fixa till det. Jag har laddat ned alla bilderna men måste koppla om dem. Det kan ta lite tid...
...
..:
.... /mos
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg20 nov 2012, 09:51

Jup, ser ut som jag kan rädda upp det. Aldrig mer lite på extern tjänst (?).
Så mycket för moln-tjänster.

Det kommer ta mig tid.

Alla bilderna ligger numer i http://dbwebb.se/img/skitch och det finns en viss logik i dess namn som gör att man kan koppla ihop dem med ursprungslänken.

Jag får göra en städningsrunda. Snacka om surt äpple.
...
..:
.... /mos

karlingen

html-kodare

  • Inlägg: 12
  • Blev medlem: 09 okt 2012, 11:57

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg26 nov 2012, 15:35

Gött! Ser att du har uppdaterat de flesta bilderna.
Du har dock missat några stycken i tutorial delarna. Exempelvis dessa dbwebb.se/forum/viewtopic.php?p=1510
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg27 nov 2012, 10:34

Fixat alla bilder.
Pust.
...
..:
.... /mos

Javascript

html-kodare

  • Inlägg: 16
  • Blev medlem: 10 aug 2017, 20:46

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg31 okt 2017, 14:04

Hej är den här tutorial fortfarande aktuellt? Eller finns det någon annan som tänker på säkerhet m..m? :D
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg31 okt 2017, 14:28

Ne, informationen är gammal och används inte mer. Det finns två kurser som utvecklats efter denna och tagit koncepten vidare.
...
..:
.... /mos

Javascript

html-kodare

  • Inlägg: 16
  • Blev medlem: 10 aug 2017, 20:46

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg02 nov 2017, 20:31

Vart kan jag finna dessa?
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11065
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg02 nov 2017, 22:20

Vad letar du efter?
...
..:
.... /mos

Javascript

html-kodare

  • Inlägg: 16
  • Blev medlem: 10 aug 2017, 20:46

Re: Tutorial Lydia: Bygg ett PHP-baserat MVC-inspirerat CMF

Inlägg03 nov 2017, 18:58

Jag vill lära mig skapa en säker blogg med php

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 16 gäster