Implementace ORM s Dependency Injection
- xbay
- Člen | 2
Dobrý den, chci zavést v projektu ORM a narazil jsem na to, že nevím jak
využít pořádně DI. Mám zhruba takovouhle představu:
"":http://www.phpguru.cz/…rstev-modelu nejspodnější vrstu
bude tvořit Nette\Database, nad ní pak budou mappery, repository a entity nad
kterými budou service a ty budou registrovaný v nette a v presenterech se
s nimi bude pracovat. jenomže nevím jak dostat kontext k mapperům. U ORM
jde přece o to, oddělit databázi od objektů. A context do mapperu dostanu
pouze konstruktorem, takže by to znamenalo že i všechny vyšší vrstvy
musí mít v konstruktoru context a předávat ho dál ne? nebo je možnost si
kontext sám vytvořit až tam kde je potřeba, tedy v mapperu? tam už by
zůstal a nikde jinde v aplikaci by se nepoužil.
- David Matějka
- Moderator | 6445
ty budes v jednotlivych vrstvach jako zavislost vyzadovat sluzbu vstvy nizsi, takze treba
class ProductDatabaseMapper implements IProductMapper
{
public function __construct(Nette\Database\Context $database)
}
class ProductRepository
{
public function __construct(IProductMapper $mapper)
}
class ProductFacade
{
public function __construct(ProductRepository $repository)
}
vsechno budes mit registrovany jako sluzby v DI kontejneru a ten se postara o sparovani…
Editoval matej21 (26. 8. 2014 23:18)