Active row našeptávání názvů sloupců

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

Lze nějak jednoduše zařítit, aby IDE našeptávalo sloupce při práci s ActiveRow? Teď v aplikaci kvůli tomu používám entity – ale to musím kopírovat data do entity a při ukládání zase z entity – a je to takové nehezké.

Šlo by extendovat ActiveRow a pomocí anotací @property umožnit našeptávání, ale to bych musel repozitáře přimět, aby vracely mojí třídu místo ActiveRow. A to znamená extendy patřičných tříd. Takovou cestou se vydává fabik/database, ale lze to udělat nějak „čistěji“?

enumag
Člen | 2118
+
0
-

Popsané řešení považuji za čisté, o žádném jednodušším nevím. Ono je to i poněkud nesmysl, i když IDE ví že je to ActiveRow, nemá jak odlišit z jaké konkrétní tabulky to ActiveRow bude aby podle toho napovídalo sloupce. Kromě toho používání entit ti dává víc než jen napovídání v IDE, takže nevidím důvod proč je nepoužívat. Zajímavě taky vypadá YetOrm.

thunderbuff
Člen | 164
+
0
-

Neříkám, že entitní přístup je úplně špatný – ale mé entity jsou jen datové obálky, co mimo read-only getterů neobsahují žádné metody. A některé metody Active Row by se moc hodily, hlavně ActiveRow::related(), který teď musím řešit různými oklikami a pokládám víc dotazů, než by položila Nette\Database.

redhead
Člen | 1313
+
0
-

Podívej se na to YetORM, tohle se tam řeší moc elegantně.