Vinnaren i pepparkakshustävlingen!
  • 1
  • 2
2015-12-03, 07:43
  #13
Medlem
Citat:
Ursprungligen postat av svettigafettsvinet
Vet inte hur du tänker dig dessa repositories eller var de ska passa in.
Det är inte jag som tänker mig, att lösa data access med någon form av repository är i stort sett standardförfarande.
Citat:
Ursprungligen postat av svettigafettsvinet
I bland annat diverse php litteratur ser man att "modellen" är associerad med databasen och att man gör diverse anrop från modellen. Var vet jag inte riktigt.
Det var vi överens om redan tidigare. Databasanrop ska absolut inte ligga i modellen. Angående var, så är svaret: i ditt data access layer. I sin enklaste form består det av enbart en repository.
Citat:
Ursprungligen postat av svettigafettsvinet
Skulle jag göra för tillfället så skulle jag till varje modell som innehåller en klass skapa en fil med funktioner med databasanrop som hanterar information om denna klassen. Alternativt om det är få databasanrop ha en enda separat fil med funktioner eventuellt som kommer göra alla databasanrop.
Båda dessa är en enkel form av repositories. Alternativ två skulle snabbt bli hopplöst om du inte menar att det är en generisk klass. Men även generiska klasser blir ganska snabbt ohållbara.
Citat:
Ursprungligen postat av svettigafettsvinet
Dessa/denna fil skulle alltså inte vara controller, view eller model utan något annat.
Ja, din data access har absolut inget med MVCs komponenter att göra. Den hör inte hemma i någon av delarna.

Du ville ha en generell diskussion hur man hanterar databasanrop i MVC. Man gör det i ett data access layer som i sin enklaste form består av en enda, vanligtvis då generisk, repository. Eventuellt finns ett service layer ovanpå.
Dina anrop sker då från controller -> ... -> data access layer som returnerar data tillbaka till controllern. Hur exakt det ska implementeras i ditt fall beror på vilket språk du väljer, vilken databas, om du använder en ORM och i så fall vilken, hur pass omfattande din applikation kan tänkas bli etc etc. Därför kan jag inte skriva något i stil med
"Skapa upp en klass för varje modell, i dessa klasser skriver du sedan kod som gör förslagsvis:
Kod:
GetAll();
GetById(int id);
Add(Foo entitiy)
Update(Foo entity);
Delete(int id);
Delete(Foo entitiy);
"
Du kan ju åtminstone googla och läsa på, det är för omfattande område för att jag ska skriva ner det åt dig. Har du mer specifika frågor för en specifik situation (om än hypotetisk) så kan jag svara. Men frågan "var ska denna repository ligga" har inget svar.
Citera
2015-12-05, 17:07
  #14
Medlem
svettigafettsvinets avatar
Tack för ditt svar. Det är nu uppenbart för mig att för att följa den MVC modellen stringent så måste man ha med dessa "Repositories" alltså samlingar av funktioner som mappar objekt till databasen. Dessa "Repositories" är själva utanför MVC modellen.
Citera
  • 1
  • 2

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback