K čemu je, když model dědí z DibiRow?
- nanuqcz
- Člen | 822
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
...
?>
- Dr.Diesel
- Člen | 53
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
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.