Protection Proxy nad Doctrine entitou
- MilanLempera
- Člen | 11
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
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 :)