Hallo leute,
mittlerweile habe ich ein wenig weiter mit Clean Code Architektur experementiert und bin auf folgendes Gestoßen:
UseCase:
Zeige listen von objekten an die weitere objekte beinhalten, filtere die liste nach bestimmten Kriterien und Sortiere die ausgabe nach bestimmten feldern.
Mögliche Lösung 1:
Repository klasse mit allen notwendigen methoden ausstatten.
Problem: repository wird viel zu viele methoden haben die teilweise immer das gleiche machen nur ein wenig anders.
Mögliche Lösung 2:
und das sortieren wird PHP Seitig geregelt und weitere objekte werden mit ProxyPattern nachgeladen
Problem: größere listen die auch noch große objekte nachladen kann auch performance fressen
Mögliche Lösung 3:
ein mix aus 1 und 2, alles normal laden und an den stellen, wo man performance probleme sieht, eine extra methode implementieren die das Problem wegschaft.
Irgendwie gefällt mir keiner der lösungen. Was ich mir gut vorstellen könnte, wäre zb
glaub es hieß filter pattern oder ähnlich, wo bei den Creterias ein And und Or drangehängt wird.. das Problem ist, dass in den beispielen, meist bereits eine komplette liste gefiltert wird, ich möchte aber schon die fertige liste(inklusive unterklassen) kriegen.
Vielleicht kennt jemand von euch, einen sauberen weg wie ich gezielt daten aus einem Repository laden könnte inclusive weitere objekte bei bedarf, dabei soll dieser weg auf alle möglichen spechermedien übertragbar sein, sei es DB / Datei oder PUT Requests auf einer API.
Hoffe jemand kann mir da weiter helfen
LG BlackScorp
mittlerweile habe ich ein wenig weiter mit Clean Code Architektur experementiert und bin auf folgendes Gestoßen:
UseCase:
Zeige listen von objekten an die weitere objekte beinhalten, filtere die liste nach bestimmten Kriterien und Sortiere die ausgabe nach bestimmten feldern.
Mögliche Lösung 1:
Repository klasse mit allen notwendigen methoden ausstatten.
PHP-Code:
$repository->findByNameAndLoadWithFooAndOrderByBar($name,$order);
Mögliche Lösung 2:
PHP-Code:
$objects = $repository->findByName($name);
Problem: größere listen die auch noch große objekte nachladen kann auch performance fressen
Mögliche Lösung 3:
ein mix aus 1 und 2, alles normal laden und an den stellen, wo man performance probleme sieht, eine extra methode implementieren die das Problem wegschaft.
Irgendwie gefällt mir keiner der lösungen. Was ich mir gut vorstellen könnte, wäre zb
PHP-Code:
$repository->findByCriteria(RepositoryCreteria $criteria);
Vielleicht kennt jemand von euch, einen sauberen weg wie ich gezielt daten aus einem Repository laden könnte inclusive weitere objekte bei bedarf, dabei soll dieser weg auf alle möglichen spechermedien übertragbar sein, sei es DB / Datei oder PUT Requests auf einer API.
Hoffe jemand kann mir da weiter helfen
LG BlackScorp
Kommentar