v23 fredag – MVC i WordPress Plugins

Vad är MVC?

MVC står för Model, View, Controller och är ett designmönster som programerare använder för att strukturera sin kod. Grundtanken är att dela upp olika delar av kod beroende på vad koden ämnar att göra, och att samtidigt minska mängden duplicerad kod som skrivs.

The Model

Modeller representerar data och de klasser som används för att interagera med data. I sin enklaste form kan en modell vara en MySQL tabell, men ofta är modellen en klass som låter dig programmatisk interagera med datan via ett API (läs: klassmetoder).

The View

Vyer är verkligen bara vyer. De är de grafiska eller visuella representationen av en modell. Beroende på vad du bygger kan detta vara en HTML struktur som fylls med innehåll från modellen, eller rentutav bara svaret på ett AJAX anrop. Poängen med vyn är att den inte ska innehålla kod/logik som manipulerar eller på annat sätt ändrar på modellen. En vy ska visa upp en modell så som den är.

The Controller

Controllers är kopplingen mellan modeller och vyer. En controllers uppdrag är att slussa modeller fram och tillbaka mellan vy och datastore. Ibland skickar den en modell till en ”read-only” vy, och då sker inga förändringar. I ett annat fall kan modeller skickas till ett formulär och då manipuleras av en slutanvändare. När användaren klickar ”spara”, är det controllerns uppdrag att skicka tillbaka den ändrade modellen till dens datastore.

Hur passar MVC in i WordPress?

Det korta svaret är: inte riktigt. Även om MVC är ett väldigt bra mönster så är det inte helt kompatibelt med hur WordPress är uppbyggt. WordPress i grund och botten är baserat på events: att något händer och då sker en reaktion (i form av actions och filters). För oss utvecklare betyder det att även om vi kan använda delar av MVC mönstrer måste vi komprommissa. Models och Controllers kan vi fortfarande implementera i hög grad, men vi äger inte våra views på samma sätt som man gör i ett rent MVC-ramverk.

Läs mer om MVC

0 votes