Společný deletePresenter?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
libik
Člen | 96
+
0
-

Ahoj,

mám stromovou strukturu, kterou obsluhuji pomocí pagePresenter, documentPresenter, filePresenter (page může obsahovat N dokumentů a ty zase M souborů).
Teď jsem se dostal k mazání (nastavuji jen příznak v db), které chci provádět v kterékoliv úrovni a vždy smazat i všechny děti ve stromu (smažu dokument, smažou se příslušné soubory, atd.)

A teď jaká je best practice, aby se kód neopakoval nebo nevznikl nějaký hloupý kód, který mě napadl jako první:

  • filePresenter maže soubory
  • documentPresenter maže konrkétní dokument, dále z modelu pro files zjistí, které mu patří a smaže je také
  • pagePresenter analogicky z příslušných modelů zjistí dokumenty a soubory v nich… a maže.

Další řešení co mě napadá:

  • deletePresenter s actionDeletePage, actionDeleteDocument, actionDeleteFile

nebo

  • smazat Page v pagePresenter:actionDelete, přesměrovat na documentPresenter:actionDelete a smazat dokument a přesměrovat na filePresenter:actionDelete a smazat soubory … a přesměrovat zpět.

Díky za radu.

David Matějka
Moderator | 6445
+
0
-

pouzij to prvni reseni s tim, ze tu logiku budes mit v modelu – tam se nastavi priznak a zavola se jina metoda (pripadne na uplne jine sluzbe) ktera smaze deti atd.

deletePresenter neni hezky a to presmerovani je blbost :)

alternativa – triggery v databazi

libik
Člen | 96
+
0
-

Diky za odpoved!