K čemu je, když model dědí z DibiRow?

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

Ahoj,
v QuickStartu při psaní modelu jsem si všiml, že třída modelu dědí z třídy DibiRow. Chtěl bych se zeptat, jaké výhody to modelu přináší? V QuickStartu je jediným vysvětlením komentář, který mi vlastně nic užitečného neřekl:

<?php
class Todo extends DibiRow // DibiRow obstará korektní načtení dat
...
?>
newPOPE
Člen | 648
+
0
-

Ono staci sa pozriet do class DibiRow a hned uvidis co vlastne dedis :-)

nanuqcz
Člen | 822
+
0
-

Tak jsem se tam koukal a nic, co by mi přišlo užitečné pro model zdědit, jsem nenašel.

newPOPE
Člen | 648
+
0
-

xxxObiWan napsal(a):

Tak jsem se tam koukal a nic, co by mi přišlo užitečné pro model zdědit, jsem nenašel.

No tak vidis :-), nik ti nehovori, ze to dedit musis. Je to proste na konkretnom cloveku ako si to napise ;-)

Dr.Diesel
Člen | 53
+
0
-

xxxObiWan napsal(a):

Tak jsem se tam koukal a nic, co by mi přišlo užitečné pro model zdědit, jsem nenašel.

Tam pujde spis o navratovou hodnotu metod jako DibiResult::fetch(), ktery deklaruje, ze vraci @DibiRow|false. Pokud zavolas nad DibiResult $result->setRowClass('PotomekDibiRow') , vytvori ti primo z query instanci tve tridy a nemusis do ni znovu sypat data z DibiRow .

Dal DibiRow prinejmensim implementuje ArrayAccess +iteratory, takze lze k datum pristupovat primo pres $row['col'] . Navic jsou tam prevodni funkce pro datumy a bool sloupce.

Editoval Dr.Diesel (2. 9. 2010 12:19)

westrem
Člen | 398
+
0
-

Dr. Diesel napsal:
Dal DibiRow prinej mensim implementuje ArrayAccess +iteratory, takze lze k datum pristupovat primo pres $row[‚col‘] . Navic jsou tam prevodni funkce pro datumy a bool sloupce.

Ono hlavne je vediet co robim a preco to tak robim. V konecnom dosledku nepotrebujes aby tvoja trieda dedila od DibiRow pokial nepouzivas niektore veci.

To odporucanie je tam pretoze ak sa pozries do zdrojakov dibi tak je vidiet, ze na niektorych miestach sa ArrayAccess nativne vyuziva a predpoklada. Ak by tvoja trieda neimplementovala prislusne interfaces tak mas holt smolu pri niektorych dibi metodach.