Kom ihåg mig?
Home Menu

Menu


table joins och objektmodell

 
Ämnesverktyg Visningsalternativ
Oläst 2011-02-22, 14:16 #7
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
danjel danjel är inte uppkopplad
Medlem
 
Reg.datum: Nov 2003
Inlägg: 214
Citat:
Ursprungligen postat av dAEk Visa inlägg
Jo, jag förstår. Går det inte att använda sina egna klasser om man redan har dem? Min kunskap inom PHP är egentligen obefintlig men i andra språk finns det ORM:s som låter en använda befintliga klasser. Det blir ju en del merjobb om man låter ORM:n skapa/generera DTO:erna eftersom de sedan behöver mappas mot ens egna klasser. Jag har nyligen upptäckt ett lib som gör mycket av det nästan helt magiskt fast det hjälper ju inte dig eftersom det är i ett språk som inte är PHP. Men du kan ju kolla efter "AutoMapper for PHP" eller liknande på t.ex. Stackoverflow. Annars vet jag inte. Det känns ju som att en fråga per objekt kommer belasta databasen mer, göra sidorna långsammare och dessutom kommer det begränsa användningsområdet till viss del om du inte bygger in stöd för eager loading också. Transaktionshantering borde ju också ingå. Nä, jag tror fortfarande att en ORM är rätt väg att gå.



Ah, ser nu att jag läste lite fel.
Ok, jag ska kika på automapper, tack för ditt svar.
Annars är problemet att jag inte hittat ett ORM som är enkelt och flexibelt än. Doctrine m.fl är för komplexa i mina syften..

Nåväl för den ursprungliga frågan jag tror jag frångår en princip att låta klasser mappa exakt mot databastabeller, och modellerar entiteter i stället (se nedan för bloggposter knutna till en användare).
Sedan får ett repository lager innehålla joins helt fritt..

<?php

class User
{
private $id;
private $name;

private $blogPosts;

public function __construct($id, $name)
{
$this->id = $id;
$this->name = $name;
}

public function addPost(BlogPost $p)
{
$this->blogPosts[] = $p;
}

public function getPost($i)
{
return $this->blogPosts[$i];
}
}

?>
danjel är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 16:28.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017