Protection Proxy nad Doctrine entitou

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

Zdravím,
řeším jak kontrolovat přístup k entitě pro různé role a stavy entity.

Bavili jsme se o tom na poslední sobotě, kde jste mě úspěště navedli k tomu, že by to měla řešit proxy třída.

Takže mám třídy Entity, a EntityProxy.

Chci používat nějakou services třídu, něco jako https://github.com/…/Service.php

Proxy bude mít metody create, update, takže je Service třídě jedno, jestli pracuje z proxy, nebo přímo z Entitou.
Problém bude u metod save a delete – kde se instance Entity předává EntityManageru
 – jak z proxy dostat původní entitu?

Napadlo mě udělat si metodu getEntity(), která ji bude vracet, ale nepopírá to smysl té proxy třídy?

Aby pak bylo možný zaměnit proxy a Entitu, musela by Entita tu metodu implementovat taky – vracela by $this.

Tak nějak cítím, že to není úplně správná cesta – nutit entitu něco implementovat a vydávat z proxy to co mám odstiňovat… nenapadá vás lepší řešení?

Editoval MilanLempera (24. 2. 2011 15:38)

Filip Procházka
Moderator | 4668
+
0
-

Jestli můžu doporučit, počkej ještě tak týden, dva (do PS už to bohužel nestihnu). Píšu něco jako „ultimátní řešení“ :) Trošku se to inspiruje v Honzovém Neuronu, trošku v Djangu a když to dobře dopadne, bude to umět kontrolovat přístup k entitě i na úrovni jednotlivých properties a bude možné z toho generovat administraci :)