![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 0 Dołączył: 25.11.2003 Skąd: Białe Błota Ostrzeżenie: (0%) ![]() ![]() |
Tak wlasnie siedze i mysle sobie, bo chce przepisac swoja aplikacje z GOD classes na prawdziwe OOP. Chce aby kazda klasa reprezentowala jeden typ danych, np. klasa Articles ma metody tworzace obiekty klasy Article, ktora posiada z kolei metody zwracajace dane danego artykulu. Ale jest problem... Artykuly w bazie danych polaczone sa relacyjnie z Article_Type, oraz Category. I problem w tym, ze klasa Article_Type to tylko article_type z DB, Category to tylko category z DB. W templejcie potrzebuje wyswietlic artykuly wraz z ich kategoria oraz typem (np. test, recenzja czy cokolwiek innego). I nie wiem, jak mam polaczyc te obiekty. Moge oczywiscie zrobic wywolanie obiektu Category z Article, ale to za kazdym wyswietleniem danych tworzy jedno zapytanie do bazy o nazwe kategorii. Ma ktos jakis pomysl?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 30.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Swojego czasu trochę nad tym z kumplem debatowaliśmy i doszliśmy do wniosku, że to jest po prostu nie do zrealizowania, tj. nie da się programować w php jak w Javie czy innym stricte obiektowym języku.
Klasy encyjne (istnieje takie pojęcie w ogóle? no w każdym razie mam nadzieję, że wiadomo o co chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ), czyli te które reprezentują dane, w php po prostu nie mają sensu. Należałoby je cache'ować, a tego nie da się uzyskać z oczywistych powodów - kod w php działa tylko przez chwilę. Powiedzmy (na co na pewno sam wpadłeś), że możesz obie klasy wypełnić za jednym przebiegiem wywołując łączone zapytanie do bazy i wypełniając je obie na raz poprzez jakieś, tylko po co? Przekazujesz to potem jakiemuś wyświetlaczowi, bawisz się, grzęźniesz a możesz to mieć w trzech linijkach zwykłego, proceduralnego kodu. Bynajmniej nie jestem mastah OOP, ale na tyle na ile poznałem php uważam, że nie warto się bawić z nim w takie klasy, reprezentujące rekord bazy danych. Szkoda Twojej pracy. Nie mniej bardzo chętnie posłucham, jeśli ktoś ma jakieś inne doświadczenia. Pozdrawiam. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 6.10.2025 - 14:44 |