struktura MVC pro vrstvu na ovládání databáze
- Hafran
- Člen | 121
Zdravím,
mám databázi ve které mám spoustu stromových dat – např.
menu/komentáře/katalogy aj. Používám Closure tree. Jelikož
změna/přesun/editace větví a listů je poměrně pracná chci si vytvořit
abstraktní vrstvu, která to bude dělat a do ni chci předávat například
databáze, tabulky, strukturu a pak teprve proměnné. Prostě abych to nemusel
psát pro každou situaci zvlášť a mohl to měnit centrálně.
Zajímalo by mě, kam bych to měl v Nette dát nemám s tím moc zkušeností. Jak to čistě začlenit do struktury MVP? Zda to má být model, na který se odkazují další modely nebo to udělat jako Componentu nebo rozšířit Database? Nebo prostě budu mít dva modely a budu si pamatovat který je který, jeden pro Closure tree, druhý pro zbylá data? Chci to mít čistě navrhnuto, ať to nepíšu každý měsíc znovu. ;) Dík
- Hafran
- Člen | 121
No vypadá to, že mě správně chápeš, ale já si nejsem jistej že chápu tebe. ;) Nejsem si jistý jak udělat tu funkční třídu a data pro správu jako property entity? Vlastně si nejsem jistej ani slovem entita. :)
pilec napsal(a):
Pokud tě správně chápu, tak bych šel cestou kompozice, že data potřebná pro pohyb ve stromě + třída co se o strom stará bude vlastně property té entity, která má ve stromě být.
- Jan Endel
- Člen | 1016
Nástřel:
class FooEntity {
private $id;
private $tree;
private $name;
//getry, setry a podobný binec
//...
}
class Tree {
private $ancestror;
private $descendant;
public function insert(){}
public function move(){}
public function delete(){}
//... a tak dale
}
class Foo {
public function doSomething()
{
$entity = new FooEntity;
$entity->tree->move();
//...
}
}
- Hafran
- Člen | 121
Pilec: dík, tak sem tě pochopil dobře. ;) Mohl bys mě prosím odkázat na nějakej článek/knihu nebo vysvětlit co by v té entitě být mělo a nemělo na úkor té funkční třídy a Modelu a proč?
Jedinej článek o entitách a rozdělení modelu jsem našel zde: http://www.phpguru.cz/…rstev-modelu ale to mi nepříjde úplně srozumitelně vysvětlené :/