Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

nefunkční Repository::clean() #59

Open
paranoiq opened this issue Feb 16, 2013 · 4 comments
Open

nefunkční Repository::clean() #59

paranoiq opened this issue Feb 16, 2013 · 4 comments
Labels

Comments

@paranoiq
Copy link

$entity = new WhateverEntity;
$repository->attach($entity);
$repository->clean();
$repository->flush(); // entita se uloží, ačkoliv by neměla

$entity = $repository->getById(1);
$entity->someParam = "whatever";
$repository->clean();
$repository->flush(); // entita se uloží, ačkoliv by neměla
@PetrP
Copy link
Owner

PetrP commented Feb 21, 2013

V jakém usecasu jsi potřeboval clean použít?
Protože já jsem zatím na žádný nenarazil.

@paranoiq
Copy link
Author

mám to chápat jako "to není chyba, protože já to nepoužívám?" :]

use case je: "dojde k chybě, chci zahodit data, ale uložit o tom záznam."

@PetrP
Copy link
Owner

PetrP commented Feb 24, 2013

Není to chyba protože jsem to nikdy neprogramoval tak aby to takhle fungovalo.
Je chyba že jsem to tak nikdy nenaprogramoval. Protože to by bylo očekávané chování.
Myslím že na to mám i velmi staré todo.
Nikdy jsem tohle chování nenaprogramoval protože jsem na php request/response způsobu života nikdy podobnou funkci nepotřeboval.

To co jsi popsal nechápu jako usecase ale jako testcase, který jsem pochopil už v první zprávě.
Zajímá mě jak a proč jsi chtěl clean použít. Abych si ospravedlnil že existuje rozumný usecase proč podobnou funkci implementovat nebo naopak neexistuje a clean odstranit aby nemátl.
Nemá to úplně triviální řešení a je potřeba větší množství změn aby to bylo možné.

@paranoiq
Copy link
Author

používám to přesně k tomu co jsem napsal. alternativy jsou - a) uložit to mimo Orm (třeba přes samotné Dibi), b) použít nový repository container c) logovat mimo db v daném případě nedává smysl

btw: jako work-arround prostě vyprazdňuji všechny IdentityMapy. nevím jestli je opravdu nutné implementovat vracení entit do původního stavu, jak píšeš v todočku v kódu

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants