Wpis z mikrobloga

Które z frameworków php (poza #zend) umożliwiają integrację wyników zapytań bazodanowych z klasami typu Row / RowSet.
W Zend bardzo mi się podobało to, że w klasie modelu obsługującej operacje na tabelach, można było ustawić własną klasę do obsługi wyników zapytań i działać na nich, jak na obiektach. Chyba większość z innych, popularnych frameworków wypluwa dane jako tablice (np. #laravel). Czy znacie jeszcze jakieś frameworki, w których zostało to podobnie rozwiązanie jak w Zend?

#php #webdev #cms #framework
  • 5
@matiit: Laravela tylko sprawdzałem pobieżnie ale możliwe, że coś źle robiłem bo wydaje mi się że wypluwał mi jako array. Tak czy inaczej: Czy w klasie modelu można wskazać na jakąś własną klasę dziedziczącą po Collection?
@sheeple: Generalnie każdy, który posiada jakiegoś ORMa. Np. Symfony korzysta z Doctrine.
Ale podpowiem Ci rozwiązanie bez użycia ORMa.

Masz tablicę: $a = array('x'=>1, 'y'=>2);.

Teraz robisz tak: $a = (object) $a; //rzutujesz tablicę na obiekt
I już możesz traktować zmienną $a jako obiekt (np. echo $a->x; //wyświetli 1). Niestety nie można rzutować obiektów na inne klasy jak np. w Javie. Ale można to obejść w bardzo prosty sposób.
@pilkarskiefakty_com: Dzięki, wiem że można samemu zrzutować na obiekt ale IMHO, przy wielu operacjach to zbyteczny narzut kodu, w Zend tworzyłem sobie np. klasę MyCustomRowSet dziedziczącą po ZendDbTableRowsetAbstract, w klasie modelu ustawiałem $_rowsetClass = 'MyCustomRowSet' i wszystko działo się tak magicznie. (ʘʘ) Niestety, Zend jest zbyt wolny i przesiadłbym się na jakiś bardziej nowoczesny framework ale najlepiej gdyby już posiadał właśnie taką funkcjonalność