- tomees
- Člen | 59
Ahoj, marně se snažím dostat do události pole, které bych v ní chtěl upravit, resp. ho tam dostalu, ale ne jako referenci.
V tuhle chvíli dostanu Parameter 2 to
AMS\Modules\Accountancy\Components\ProductModalControl::AMS\Modules\Accountancy\Components\{closure}()
expected to be a reference, value given
Už jsem zkusil snad všechno, ale ať dělám co dělám, nehnu s tím…
Díky za případné rady
T
- Ondřej Kubíček
- Člen | 494
myslím, že neuděláš, leda něco takového:
ale to neřeší tvuj problém, proč potřebuješ referenci? modifikuješ to pole a chceš ho vrátit a pracovat s ním dál? podle mě špatný návrh
- tomees
- Člen | 59
Osobně si nemyslím že úplně špatný.. mám prostě funkci která vrací data z DB nějak zpracovaná v poli. Ale já za určitých okolností a v určitých místech chci mít možnost do toho pole ještě něco přidat dle potřeby. Čili ta událost tam vždy být nemusí. Momentálně už teď taky vidím že to neudělám, zkusím to vymyslet jinak, nechci tam dávat natvrdo vše do té funkce
- Milo
- Nette Core | 1283
Špatným návrhem to minimálně zavání. Občas refaktoruju legacy aplikace a data v polích, navíc referencovaných, je největší peklo na refaktoring. Je to skoro jak globální proměnné.
Udělej si na to value objekt a konstruuj ho třeba z toho pole. Dodatečné modifikace přes metody v nichž si i ohlídáš vnitřní stav objektu. Pak máš po problému.