Visa ett inlägg
Oläst 2011-02-22, 14:16 #3
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